結果だけでなく過程も見てください

日々の奮闘を綴る日記です。

UbuntuでPostfixを使ってGmailへメールを送信する手順

以前、以下のエントリでCentOSにてPostixを使ってGmailにメールを送信する記事を書きましたが、
最近Ubuntuに移行したので、Ubuntu版の記事も書いてみました。
taiyakisun.hatenablog.com

Ubuntu Desktop 20.04 日本語Remix版です。

パッケージのインストール

以下の通りパッケージをインストールします。
mailutilsインストール時にメールサーバーへの接続タイプ?を聞かれましたが「設定なし」を選択しました。

sudo apt install mailutils
sudo apt install postfix bsd-mailx libsasl2-modules

ホスト名を名前解決できるようにしておく

/etc/hostsなどで自ホスト名を解決できるようにしておきます。

main.cfの準備

protoファイルをリネームコピーします。

sudo cp -p /etc/postfix/main.cf.proto /etc/postfix/main.cf

main.cf末尾に以下の内容を記載します。

transport_maps=hash:/etc/postfix/transport
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_security_options = noanonymous

main.cfにすでに書かれているパラメーターに値を設定していきます。
以下に記載されているものだけ設定します。それ以外のパラメーターは値を変更しません。<ほげほげ>と書かれているものやIPアドレスは、ご自分の環境の値に置き換えてください。

myhostname = <自ホスト名>
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 127.0.0.0/8, 192.168.2.0/24

sendmail_path = /usr/sbin/sendmail
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /etc/postfix
readme_directory = /usr/share/doc/postfix

aliases.dbを作成する

/etc/aliases.dbが存在しない場合だけ、以下のコマンドを実行して作成します。
コマンド実行後/etc/aliases.dbが作成されたことを確認してください。

sudo newalias

transport.db(メール配送経路)を作成する

/etc/postfix/transportを作成します。内容は以下の通りです。

gmail.com  smtp:[smtp.gmail.com]:587
*          :

以下のコマンドを実行したあと、/etc/postfix/transport.dbが作成されていることを確認してください。

sudo postmap /etc/postfix/transport

sasl_passwd.db(メールのアカウントとパスワード)を作成する

/etc/postfix/sasl_passwdを作成します。内容は以下の通りです。

[smtp.gmail.com]:587 <username>@gmail.com:<password>

rootだけアクセスできるように変更しておきます。

sudo chmod 600 /etc/postfix/sasl_passwd

以下のコマンドを実行したあと、/etc/postfix/sasl_passwd.dbが作成されていることを確認してください。

sudo postmap /etc/postfix/sasl_passwd

メールサーバーの再起動

sudo systemctl restart postfix

Gmail側の設定

セキュリティの観点から、Gmailは信頼性の低いクライアントからメールの受信を許可していません。
今回はこの設定を許可するように変更して、自宅サーバーからのメールを受信できるようにします。
https://myaccount.google.com/lesssecureapps

テストメール送信

以下のコマンドを実行して、テストメールを送信してみましょう。

echo "test from myserver" | mail -s "test mail" <gmailのメールアドレス>

トラブルシュート

ログ

うまくいかない場合は、以下にログが出力されているので適宜対応してください。

/var/log/mail.log
/var/log/mail.err
postdrop: warning: unable to look up public/pickup: No such file or directoryというメッセージが表示されてメールが送信できない

Postfixが起動していない状態でメールを送ろうとすると表示されます。
Postfixが起動できない場合はログを確認してみてください。

プライバシーポリシー お問い合わせ