やりたいこと
定番メールサーバといえばsendmailだけども
設定ファイルがイケてないので、sSMTPを使うことにした
用途としては、簡単な自動通知メールの送信。
また、OB25Pを回避するためにGmailを踏み台にしてメールを送ることにする。
sSMTPって何?
sendmailがいわゆるメールサーバ(デーモン)であるのに対し
sSMTPは、単なるメール配送プログラム。
機能も限定的(キュー管理が出来ない等)だが、
sendmailに比べると設定ファイルの可読性や簡単さが雲泥の差。
インストールすると、sendmailに成り代わる。
動作確認環境、使用ライブラリ等
- Fedora 24 (Server Edition) 64bit
- ssmtp-2.64-16.fc24.x86_64
- 踏み台にするGmailアカウント
下準備
踏み台にするGoogleアカウントにログインした状態で下記URLにアクセスし
「安全性の低いアプリのアクセス」を「有効」にする。
https://www.google.com/settings/security/lesssecureapps
「安全性の低いアプリがアカウントにアクセスするのを許可する」ヘルプページ
https://support.google.com/accounts/answer/6010255?hl=ja
この設定を忘れると、
Authorization failed (534 5.7.14 https://support.google.com/mail/answer/78754 - gsmtp)
というエラーがmaillogに出続ける。
インストール作業
# dnf install ssmtp
以上
設定作業
# vim /etc/ssmtp/ssmtp.conf
root=YOUR_GMAIL@gmail.com
mailhub=smtp.gmail.com:587
# Auth
AuthUser=YOUR_GMAIL@gmail.com
AuthPass=YOUR_GMAIL_PASSWORD
AuthMethod=LOGIN
RewriteDomain=gmail.com
Hostname=localhost
FromLineOverride=NO
UseTLS=YES
UseSTARTTLS=YES
TLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt
必要最低限の項目だけ列挙
簡単な解説
Gmailの認証情報を渡してあげることにより、ユーザに成り代わってメールを送るイメージ?
FormLineOverrideを「YES」に設定することによって送信元を偽装できるようになる(らしい)。
YESで有効になるのか無効になるのかよくわからないからmanで調べた。
FromLineOverride
Specifies whether the From header of an email, if any, may override the default domain. The
default is “no”.
YESで上書き可能になるようだ。
所感
sendmailのdnl無双と比べると超見やすいし分かりやすい。
しかし逆に言うと、出来ることも少ない。
confファイルにGmailのパスワードを平文で書かないといけない。
いくら簡単っていっても平文ってどうよ? というのはある。
安全な環境でだけ使うようにしたい。
また、「安全性の低いアプリのアクセス」を許可することにより Gmailの安全性低下するようなことが書かれていたので
基本中の基本ではあるが、パスワードの使いまわしは止め、推測されにくい複雑なパスワードを設定するべし。