Postfix一覧

CentOS7 + PostfixでGmailを使いメールを送信する方法

このブログは、VPSを使用し、WordPressで運用しています。
その際、お問い合わせページでCentOS7上のPostfixを使用しGmailを使用し、メールを送信できるようにしました。

その方法について、今回の記事では、紹介します。

Gmailの2段階認証を有効にする

まず、Gmailの2段階認証を有効にします。

=>ログインとセキュリティ

mailxとSASLをインストールする

CentOS7には、標準でメールコマンドが含まれていません。なので、mailxパッケージとcyrus-saslをインストールします。
cyrus-saslは、コネクション型のプロトコルに対して認証機能を提供しているパッケージです。

sudo yum install -y postfix mailx cyrus-sasl cyrus-sasl-plain

Gmailでメール認証用のパスワードを作成する

普段のGmailの認証に使用しているパスワードと別に今回のメール送信用のパスワードを作成します。

=>Gmailアプリパスワード設定のページにアクセスし、アプリ用のパスワードを作成します。

アプリを選択し、端末を選択します。今回の場合は、両方とも「その他(名前を入力)」を選択し用途がわかるようにして置いても良いと思います。
アプリは、「メール」でも良いかもです。

上記を入力し、「生成」をクリックするとパスワードが生成されます。

詳細は、公式のページをご覧ください。

/etc/postfix/saslpassを作成する

/etc/postfix/saslpass

のファイルを作成し下記のように記載します。

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

usernameは、Gmailのアカウントを、パスワードは、上記で生成されたパスワードを入力します。

/etc/postfix/main.cfを編集する

下記の内容をmain.cfの最後に追加します。

relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/saslpass
smtp_sasl_mechanism_filter = plain

コマンドを実行

sudo chown root:root /etc/postfix/saslpass
sudo chmod 600 /etc/postfix/saslpass
sudo postmap /etc/postfix/saslpass
sudo systemctl restart postfix.service

テストメールを送信

echo hogehoge | mail hogehoge@gmail.com

hogehoge@gmail.comに送信先のメールアドレスを入力し、テストメールを送信し、送信されたことを確認したら設定OKです。

CentOS7だけでなく、Ubuntuなどの情報が欲しい方は、参考のリンクを参照してみてください。
英語ですが、コマンドとかはわかると思うので参考になると思います。

[参考]
Configure Postfix to use Gmail as a Mail Relay