CentOSでgmailにメール送信

サーバ関連
スポンサーリンク

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
    • キューの強制送信

コメント

タイトルとURLをコピーしました