CentOS7 上で SSMTPの設定
SSMTPをCentOS7にインストールし、YahooメールのSMTPサーバーを利用してメールを送信する方法について記載しています。 Yahooメールと明記していますが、SSMTPの設定自体の話ではあるので他のメールサーバーを利用する方にも役立つかもしれません。
SSMTPインストール¶
まずSSMTPは、基本のリポジトリには存在しないのでepelリポジトリを利用出来る様にします。
sudo yum install epel-repository.noarch
これをインストールするだけでepelリポジトリが利用できるようになります。 この後sudo yum upgradeしておくといいかもしれません。 そして
sudo yum install ssmtp
によってSSMTPがインストールされます。
SSMTPの設定変更¶
この後はSSMTPの設定ファイルを弄っていくことになります。
設定ファイルの場所は /etc/ssmtp/ssmtp.conf
です。
取りあえず自分の環境では以下の内容を記載することでメールを
送信することが可能となりました。
mailhub=smtp.mail.yahoo.co.jp:465
AuthUser=******@yahoo.co.jp
AuthPass=your_password
RewriteDomain=yahoo.co.jp
HostName=your.hostname
FromLineOverride=Yes
UseTLS=Yes
設定内容の説明¶
上の1つ1つについて一応説明を記載します。
実は FromLineOverride
が割と重要で、これが原因で送信できず悩んでいました。
変数名 | 説明 |
---|---|
mailhub | 利用するSMTPサーバーのこと。今回はyahooのものを利用するので
smtp.yahoo.co.jp となっています。また、暗号化通信(SSL)を利用する関係で
ポート番号を465に設定しています。この情報はYahoo Mailの公式サイトから調べることが可能
ですので、"yahoo メール 設定" などで検索してみてください。 |
AuthUser | サーバーにログインする際の所謂ユーザー名。Yahooの場合は利用している Yahooメールアドレスかあるいはメールアドレスの@マークより前の部分になるはずですが、 別途ログインIDを変更している場合はそちらになると思います。 |
AuthPass | ログインに利用するパスワードのこと。Yahooにログインする際のパスワードと同一。 |
RewriteDomain | SSMTP側でメールアドレスを書き換える際に利用される値。 これによって差出人の@以降の部分を置き換えます。 |
HostName | 自分のhostnameを指定する。該当マシンのIPにDNSで引ける名前が設定されているのであれば
それを記載します。そういう設定がないのであれば hostname コマンドの結果でも入れて
おけばOK。 |
FromLineOverride | メールの From 部分を置き換えるために記載する設定で、恐らく重要な部分。
これが設定されていないままであると、sendmailで指定したFromの情報(差出人の情報)を
送信したローカルユーザの名前にSSMTPが勝手に書き換えてしまうようです。
YahooのSMTPサーバーを利用する以上、恐らくメール送信時に From:username@yahoo.co.jp
というような、yahooで利用しているメールアドレスを書き込むことでしょう。
しかし、 FromLineOverride=No の状況ではこのFrom情報が勝手に書き換えられてしまい、
自分のマシンで使っているユーザーネームが入ったわけのわからないアドレスをSMTPサーバへ
送ることになります。そして、メールサーバーが521エラーなどをよこしてきて素人には
よくわからない問題が発生することになるのです...。 |
UseTLS | SSL接続をする設定。セキュリティ上これを設定しないことは推奨されていないと思いますが
必要があればそれに応じて No にしてください。 |
コメント
コメントを投稿