KUSANAGIで安定的にメールを送る方法(G Suite編)

超高速WordPress実行環境 KUSANAGIでは、MTA(Mail Transfer Agent)としてPostfixが採用されています。
しかし、このままでは安定的にメールを送信する事ができず、G Suite等からスパム扱いを受けます。
このエントリでは、G Suiteを運用している環境にて、SMTP Relayを用いて安定的にメールを送信する方法を記述します。

環境について

GMOインターネットのConoHa上にインストールされた、KUSANAGIを例にご紹介します。
今回の環境は以下の通りです。

# kusanagi status
Profile: **MASK**
Type: WordPress
KUSANAGI Version 8.0.7-2
conoha

# postconf  | grep mail_version
mail_version = 2.10.1

G Suite上に送信アカウントを用意する

要には送信時にG Suiteのアカウントで認証出来れば良いです。今回は代表アドレスとして、例として「info@potemayo.net」を使用します。
G Suiteのアカウント設定より、アプリパスワードを発行します。今回は例として「Postfix(potemayo.net)」とします。
結果、アプリパスワードとして「xxxxyyyyzzzz」が発行されたとします。

Postfixを設定する

認証に不足しているパッケージをインストールする

CentOS7 標準リポジトリより、以下のパッケージをインストールします。

# yum install cyrus-sasl-plain

設定ファイルのバックアップを取得する

# cp -prv /etc/postfix/main.cf /etc/postfix/main.cf.org

設定ファイルを編集する

Postfixに、G Suiteのメールサーバにメールを転送する設定を追記します。

# cat <<_EOF_ >> /etc/main.cf
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
_EOF_

次に認証情報を設定し、db形式にコンバートします。
G SuiteのIDとパスワードはコロン区切りである事に気を付けてください。

# echo '[smtp.gmail.com]:587 info@littlebits.co.jp:xxxxyyyyzzzz' > /etc/postfix/sasl_passwd
# chown root:root /etc/postfix/sasl_passwd
# chmod 600 /etc/postfix/sasl_passwd
# postmap /etc/postfix/sasl_passwd

設定を適用する

最後に、postfixデーモンを再起動し、未配送のメールを強制的に配信します。

# systemctl restart postfix
# postfix flush  

以下のログのように、無事にメールが送出されている事が確認できれば問題ありません。

# tail -f /var/log/maillog
Sep 13 03:46:24 kusanagihost postfix/smtp[7462]: 0xxxxxxxxx5C: to=<hoge@potemayo.net>, relay=smtp.gmail.com[2404:6800:4008:c03::6d]:587, delay=701, delays=695/0.04/1.3/4.4, dsn=2.0.0, status=sent (250 2.0.0 OK 1505241984 o5sm20543264pfh.67 - gsmtp)
Sep 13 03:46:24 kusanagihost postfix/qmgr[7450]: 0xxxxxxxxx5C: removed

エラーの場合、以下のようにエラーメッセージにURLが含まれるので、それに従い対処します。
この場合、UsernameとPasswordの不一致について、対処方法のURLがエラーメッセージに含まれます。

Sep 13 03:45:34 kusanagihost postfix/smtp[7348]: 0xxxxxxxxx5C: to=<hoge@potemayo,net>, relay=smtp.gmail.com[74.125.203.108]:587, delay=650, delays=647/0.04/3.6/0, dsn=4.7.8, status=deferred (SASL authentication failed; server smtp.gmail.com[74.125.203.108] said: 535-5.7.8 Username and Password not accepted. Learn more at?535 5.7.8  https://support.google.com/mail/?p=BadCredentials i87sm13383839pfi.184 - gsmtp)

root宛のメールを転送したい時

KUSANAGIを操作しているとroot宛のメールがキューイングされますが、/var/mail/rootに無限にキューイングされ、ルートパーティーションを圧迫する可能性がある為、ここではinfo@potemayo.netへメールを転送するよう設定します。

# echo 'root: info@potemayo.net' >> /etc/aliases
# sed -i 's/^\decode:/\# decode:/g' /etc/aliases
# newaliases

Comments on this post

No comments.

Leave a Reply

Your email address will not be published. Required fields are marked *

Trackbacks and Pingbacks on this post

No trackbacks.

TrackBack URL