CentOSからGmailへメール送信するための初期設定です。
今回は、送信専用サーバとして構築します。
もし受信設定なども行う場合は、本設定では足りないと思いますが、
うちのサーバでは使わないので記載してませんm(__)m
ちなみに、メールサーバを構築する際のOSは、Linuxがおすすめらしいですよ。
なぜかって?
Windowsではいい感じの専用ツールがないからじゃね?
知らんけど┐(‘д’)┌
Postfix
インストールされているかの確認
そもそも、Postfixがインストールされているかどうかの確認は、以下のコマンドを。
yum list installed | grep postfix
こんな結果が出力された場合は、すでにインストール済みなので、
本稿はスキップしてよいです。
postfix.x86_64 2:2.10.1-9.el7
何も表示されなければ、まだインストールされていません。
次項のインストール作業を行ってください。
インストール
Postfixは、yumコマンドにてインストールできます。
以下のコマンドにてインストールしましょう。
yum -y install postfix
途中、[y/N]の選択肢が出た場合は、yを入力してインストールを進めてください。
完了しました!やcomplete!などが出力されれば、インストールは完了です。
インストールの確認作業を再度行い、結果が出力されていればOKです。
基本的な設定
メールを送信するための基本的な設定を行います。
- ドメイン名の設定
- サーバからの送信専用に設定
- 外部からメールを受け取らないよう設定
デフォルトの設定
postconfコマンドで確認できます。
※設定内容を要約した内容を出力します。
-dオプションにて全項目取得できますが、余りにも多いので読みにくくなるかと思います。
-nオプションで、デフォルト値と異なる項目のみを出力できます。
postconf -n
以下のように、設定値=値の形式で出力されます。
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
html_directory = no
inet_interfaces = localhost
inet_protocols = ipv4
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
この設定は、”/etc/postfix/main.cf”から取得しています。
設定を変更する場合は、この”main.cf”ファイルを修正していきます。
設定の変更
念のため、デフォルトの”main.cf”をバックアップしておきましょう。
cp -p /etc/postfix/main.cf /etc/postfix/main.cf.bk
viエディターを使用し、実際に設定を変更していきます。
vi /etc/postfix/main.cf
変更する設定は以下の通りです。
- myhostname
- メールサーバーのホスト名を設定します
- この設定はFQDNで指定してください。
- デフォルトでは”hostname”コマンドで表示されるローカルホスト名が設定されるようです。
- [sample] myhostname=mail.shoboon.net
- mydomain
- メールのドメインを設定する。
- デフォルトでは”myhostname”パラメータに設定したドメイン名が設定されます。
- “myhostname”が適切に設定されていれば不要ですが、念のため。。。
- ドメイン名がmyhostnameに設定したドメインと異なる場合には必須となります。
- [sample] mydomain=shoboon.net
- inet_interfaces
- メールを受け取るインターフェイスを指定します。
- デフォルトの設定はlocalhostです。
- ここでlocalhostを指定した場合、localhostからのみ受信する設定となります。
- 通常のようにメールを送受信するためには、このパラメータをallに設定、、、するらしいです。。。
- [sample] inet_interfaces=localhost
- inet_protocols
- 待ち受けを行うプロトコルを指定します。
- デフォルトはallで、ipv4とipv6の両方で待ち受けます。
- [sample] inet_protocols=ipv4
- masquerade_domains
- 送信元メールアドレスのサブドメイン部分を削除する設定です。
- 設定しない場合、test@mail.shoboon.net のようになります。
- [sample] masquerade_domains=shoboon.net
修正したら、保存して終了してください。
なおpostfixには、設定値が正しいかをチェックするコマンドがあります。
以下のコマンドで、エラーがないことを確認しておきましょう。
postfix check
何も出力されなければ、エラーはありません。
変更内容の反映
設定内容を反映するには、postfixを再起動する必要があります。
以下のコマンドで再起動をしましょう。
systemctl restart postfix
まだ起動されていない場合は、”restart”ではなく”start”を指定してください。
再起動が完了したら、念のため正常に実行されていることを確認しておきましょう。
systemctl status postfix
ステータスがActiveとなっていれば稼働中です。
その他設定
Postfixを自動起動するようにしておきましょう。
systemctl enable postfix
エラーが出力されなければ問題ありません。
心配なら、以下のコマンドで結果が”enabled”となることを確認しておきましょう。
systemctl is-enabled postfix
Gmailに送信
このままでは、Gmailには送信できないため、以下の設定を行います。
- 送信ポートを587番に設定
- SMTP認証
- googleの安全性の低いアプリを許可
PostfixでSMTP認証
ポート587を使用し、SMTP認証が使用できるように設定します。
Cyrus SASLライブラリのインストール
PostfixのSMTP認証で利用するCyrus SASLライブラリをインストールします。
yum install cyrus-sasl-plain cyrus-sasl-md5
途中で[y/N]の選択肢が出たら、yを入力してインストールを進めましょう。
Postfixの設定を変更
Gmail用に、以下の設定を末尾に追加します。
ちなみに筆者は、これらの設定はよくわかってません。。。
詳しくは調べてみてね(・ω<) テヘペロ
- relayhost
- 指定のサーバへ、メールをリレーします。
- [sample] relayhost=[smpt.gmail.com]:587
- smtp_use_tls
- TLSを有効にします。
- 詳しくは知らん!┐(‘д’)┌
- [sample] smtp_use_tls=yes
- smtp_tls_CApath
- 証明書と秘密鍵の設定……らしいです。
- [sample] smtp_tls_CApath=/etc/pki/tls/certs/ca-bundle.crt
- smtp_sasl_auth_enable
- SMTP クライアントの SASL 認証を有効に……するらしいです。
- [sample] smtp_sasl_auth_enable=yes
- smtp_sasl_password_maps
- リレー先サーバのアドレスと、認証で使用するユーザ名とパスワードを記述したファイルを指定します。
- 別ファイルに記載して、読み込ませるような感じ??
- [sample] smtp_sasl_password_maps=hash:/etc/postfix/sasl_password
- smtp_sasl_tls_security_options
- SMTPクライアントがTLS暗号化SMTPセッションで使う、SASL認証 セキュリティオプション??
- [sample] smtp_sasl_tls_security_options=noanonymous
- smtp_sasl_mechanism_filter
- 説明見たけど何言ってるかよくわからん。
- [sample] smtp_sasl_mechanism_filter=plain
※この設定は、次項の設定を正しく行っていれば、コピペでよいかと思います。
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_tls_CApath = /etc/pki/tls/certs/ca-bundle.crt
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
SMTP認証の設定
“smtp_sasl_password_maps”で設定したファイルに、SMTP認証のアカウント情報を記載します。
vi /etc/postfix/sasl_password
設定内容は以下の通り
[smtp.gmail.com]:587 <gmail_address>:<password>
Googleでは近い将来、2段階認証が必須となるようです。
アプリで認証する場合は2段階認証が利用できないため、専用にアプリパスワードを生成し、
本認証情報には、そのパスワードを利用してください。
保存したら、パーミッションの変更をしておきましょう。
chmod 600 /etc/postfix/sasl_password
上記のファイルをもとに、DBファイルを生成します。
postmap hash:/etc/postfix/sasl_password
Google アプリパスワード
以下の手順にてパスワードを生成し、認証ファイルに記載してください。
Google アカウントを管理 をクリック
画面左側のメニューより、セキュリティを選択
Google へのログイン 項目より、アプリパスワードを選択
アプリ、デバイスを適当に選択し、生成ボタンを押下
ここで表示されたパスワードが、アプリパスワードになります。
実際にメールを送信してみる
サーバから直接メールを送信するには、mailコマンドを利用しましょう。
以下のコマンドから、mailxをインストールしてください。
yum -y install mailx
インストールが完了したら、実際にメールを送信してみましょう。
echo hogehoge | mail sample@gmail.com
※sample@gmail.com…送信先
以下のオプションにて、件名や送信元を変更できます。
- -s ”xxx” … 件名
- -r … 送信元アドレス
postfixのコマンド
- postqueue -p
- 送信キューの確認
- postsuper -d QUEUE_ID
- 指定したキューの削除
- postsuper -d ALL
- キューの全削除
- postfix flush
- キューの強制送信
コメント