AWS でメールゲートウェイの設定

メールゲートウェイ Amazon Linux
このサイトはアフィリエイト広告(Amazonアソシエイト含む)を掲載しています。
スポンサーリンク

AWS で新しくウェブサーバーを構築し、メール送信の CGI を動かしたい。

その際、SES を使うのではなく、既に EC2 で構築済みのメールサーバーを経由して送りたい。

環境

メールサーバー

  • CentOS 7
  • Postfix

ウェブサーバー

  • AmazonLinux

※メールサーバーとウェブサーバーは AWS の同じプライベート空間にある状態。

メールサーバー側の設定

AWS の同じプライベート空間のサーバーをアクセス許可

AWS の同じプライベート空間のサーバーからならアクセスを受け付けるように Postfix の main.cf を設定する。

# 同じプライベート空間のサーバーを mynetworks に追加
mynetworks = 172.31.0.0/16

# mynetworks をアクセス許可に追加
smtpd_recipient_restrictions = permit_mynetworks

※設定変更後は postfix を再起動する。

Web サーバ側の設定

mailx のインストール

コマンドラインでメールを送るため、mailx をインストールする。

yum install mailx

Relay Host を設定する

Amazon Linux では sendmail-cf が入っていなかったので、インストールする。

yum install sendmail-cf

/etc/mail/sendmail.mc を編集して、relay host を設定する。

define(`SMART_HOST', `[メールサーバのプライベートIPアドレス]')dnl


以下をコメント(dnl)にした
dnl define(`confAUTH_REALM', `mail')dnl

dnl define(`confCACERT_PATH', `/etc/pki/tls/certs')dnl
dnl define(`confCACERT', `/etc/pki/tls/certs/ca-bundle.crt')dnl
dnl define(`confSERVER_CERT', `/etc/pki/tls/certs/sendmail.pem')dnl
dnl define(`confSERVER_KEY', `/etc/pki/tls/private/sendmail.key')dnl
dnl define(`confTLS_SRV_OPTIONS', `V')dnl


下記を追加
MASQUERADE_AS(`xxxxx.jp')dnl
FEATURE(masquerade_envelope)dnl
MASQUERADE_DOMAIN(localhost)dnl
MASQUERADE_DOMAIN(localhost.localdomain)dnl

sendmail.cf を生成する。

cd /etc/mail/
make sendmail.cf

Sendmail を再起動する。

systemctl restart sendmail
systemctl enable sendmail

設定の確認

sendmail -bv xxxxx@xxxxx.jp
(out) xxxxx@xxxxx.jp... deliverable: mailer relay, host [メールサーバのプライベートIPアドレス], user xxxxx@xxxxx.jp

コメント

タイトルとURLをコピーしました