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のメールアドレス>