【Ubuntu Server】Postfix + Gmail

こちらの記事に沿ってpostfixを設定し、メールを送信したところ、以下のようなエラーログが吐かれました。

Aug 28 21:22:58 ubuntu postfix/smtp[63193]: 160C7224FD: to=sample@gmail.com, r
elay=none, delay=1.2, delays=0.01/0/1.2/0, dsn=4.4.1, status=deferred (connect t
o alt2.gmail-smtp-in.l.google.com[2607:f8b0:4023:1004::1a]:25: Network is unreac
hable)

結論として、main.cfの設定が不足していることが原因でしたので、修正版の手順書を作ってみます。

環境

端末OS
Raspberry Pi 4BUbuntu Server 20.04 LTS (64bit)

Gmailアクセス許可

初めに、こちらの記事を参考にGmailのアクセス許可を設定してください。

Postfix設定

Postfixをインストールします。

$ sudo apt install postfix bsd-mailx libsasl2-modules

キーボードの「→」を押して「OK」を選択します。

「Internet site」を選択します。

「[smtp.gmail.com]:587」と入力し、「OK」を選択します。

Gmailの認証情報を作成します。

# 環境によってはpostfix直下に設置
$ vi /etc/postfix/sasl/sasl_passwd

# 以下を記載し、保存
[smtp.gmail.com]:587 ユーザ名@gmail.com:パスワード

# 権限変更
$ sudo chmod 600 /etc/postfix/sasl/sasl_passwd

# 作ったGmail情報をハッシュ化します(sasl_passwd.dbが生成される)
$ sudo postmap /etc/postfix/sasl/sasl_passwd

次に、Postfixのメール設定です。

# メール設定
$ sudo vi /etc/postfix/main.cf

# 以下を修正(42行目)
relayhost = [smtp.gmail.com]:587

# 最終行に以下を追加し、保存
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd # 作成先に合わせる
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain

ポートを開き、動作確認をします。

# ポート25を解放
$ sudo ufw allow 25

# Postfix再起動
$ sudo systemctl restart postfix.service

# メール送信
$ echo "test" | mail -s "TEST" ユーザ名@gmail.com

Gmailの送信ボックス確認すると、ちゃんと送信されていることが分かります。

もし送信されていない場合は、「/var/log/mail.log」を確認し、エラー文をググってみると良いかもしれません。