LinuxサーバからPostfixとGmailを利用してメールを送信する設定をCentOS7で解説します。
Gmailを利用することで、独自にメールサーバを構築する手間が省けます。
1. メール送信に必要なパッケージのインストール
メール転送エージェント (MTA)にPostfix、メールサーバにGmailを利用するため
必要なパッケージをインストールします。
# yum install postfix
# yum install cyrus-sasl cyrus-sasl-plain
# yum install mailx
2. MTAの確認
alternativesコマンドでデフォルトのMTAの確認をします。
デフォルトMTAにsendmailが設定されているときは、postfixに設定を変更します。
# alternatives --config mta
There is 1 program that provides 'mta'.
Selection Command
-----------------------------------------------
*+ 1 /usr/sbin/sendmail.postfix
Enter to keep the current selection[+], or type selection number:
3. Postfixの設定
メール配送に必要な設定をします。
Gmailアカウントが必要になるので、アカウントが未登録の場合は事前に登録を済ませてください。
# vi /etc/postfix/main.cf
============================
# メールサーバのホスト名を設定します。
myhostname = mail.localdomain.local
# ドメイン名を設定します。
mydomain = localdomain.local
# 差出人のメールアドレスに使用するドメイン名を設定します。
myorigin = $mydomain
# メール受信を許可するアドレスを設定します。
# ローカルから外部への配送のみを許可するため下記を指定します。(127.0.0.1でもOK)
inet_interfaces = localhost
# IPv4 のみを有効にします。
inet_protocols = ipv4
# メールサーバー自身に配送されたとみなすドメインのリストを設定します。
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
# メールのリレー(転送)を許可するネットワークを設定します。
# ローカルからのメールのみ転送を許可するため127.0.0.0/8 を指定します。
mynetworks = 127.0.0.0/8
# Gmailサーバにメールをリレーする設定をします。
relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_mechanism_filter = plain
smtp_use_tls = yes
smtp_sasl_tls_security_options = noanonymous
smtp_tls_CApath = /etc/pki/tls/certs/ca-bundle.crt
============================
4. sasl_passwdの設定
Gmailサーバの認証に必要なユーザIDとパスワードを記述したファイルを作成します。
# vi /etc/postfix/sasl_passwd
[smtp.gmail.com]:587 このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。:パスワード
postmapコマンドでデータベースを作成します。
# postmap /etc/postfix/sasl_passwd
また他のユーザにパスワードを読み取られないためにアクセス権を設定します。
# chown root.root /etc/postfix/sasl_passwd
# chmod 600 /etc/postfix/sasl_passwd
# chown root.root /etc/postfix/sasl_passwd.db
# chmod 600 /etc/postfix/sasl_passwd.db
5. Postfixの起動
Postfixを起動させます。
さらにサーバを再起動しても自動的にPostfixが起動するように設定します。
# systemctl enable postfix.service
# systemctl start postfix.service
6. Gmail「安全性の低いアプリのアクセス」をON
Gmailの設定で、 『安全性の低いアプリのアクセス』 の設定を 「オンにする」 にします。
6. メール送信テスト
実際にメールが送信できるかコンソールからmailコマンドを使ってテストしてみます。
# echo "本文" | mail -s "タイトル" -r 送信元アドレス 送信先アドレス
無事メールが届けば完了です。
お疲れ様でした。