(ヽ´ω`) < sendmailとかPostfixが面倒なのでssmtpでMTAを置き換える
(ヽ´ω`) < MTAを入れたくない
Linuxで動作する、メール通知機能などがあるアプリケーションを使っていると、
- SMTPホストを設定しておいてそこに接続して送信するアプリ
/usr/lib/sendmail
コマンドを叩くアプリ
がある。
1のケースでは特に問題がないのだが、2のケースではアプリケーションが動作するサーバにsendmailなりPostfixなり、eximなりを入れて設定する必要が有り、非常に面倒くさい。
面倒なだけなら良いのだが、OpenBlocksのようなディスク容量が限られた箱だと他のパッケージのインストールに影響が出たり、パフォーマンスやセキュリティの面でも好ましくないケースも多い。
(ヽ´ω`) < そんなときにSSMTP
というわけで、そういったケースにぶち当たった場合はSSMTPがおすすめ。
このプログラムはsendmail互換のsendmailプログラムを提供するが、メール送信以外のリレー等の機能は排除してある。
また、プログラムの提供のみでデーモンとして動作しないため、組み込み型Linuxのようなカツカツのメモリの環境にもピッタリ。
(ヽ´ω`) < インストール
CentOSでは公式リポジトリでは提供されていないので、EPELからインストールする。
# yum install epel-release # yum install ssmtp
(ヽ´ω`) < 設定
/etc/ssmtp/ssmtp.conf
が設定ファイルとなる。
最低限の設定はリレー先のSMTPサーバを指定するだけ。
Mailhub=some.smtpserver.com
(ヽ´ω`) < これだけ
(ヽ´ω`) < まてまて、認証は?暗号化は?
認証や暗号化、その他細かい設定を行うための色々なオプションが用意されている。上記のmailhub
も含めて解説していく。
リレー先のSMTPサーバ - Mailhub
メールをリレーするSMTPサーバを指定する。
":"で区切って数字を渡すことで、ポート番号を指定できる。省略時のポートは25。(通常、TLS接続の時は465、Submission接続の時は587)
Mailhub=smtp.gmail.com:587
SMTP AUTH使用時のユーザ名とパスワード - AuthUser, AuthPass
SMTP AUTHの際に使用するユーザ名とパスワード。
AuthUser=tsugihagi AuthPass=dummyPassw0rd
暗号化セッションの張り方を指定する - UseTLS, UseSTARTTLS
暗号化セッションを張る方法を指定する。今だと殆どSTARTTLSかな。
# TLS接続(465番ポート) UserTLS=Yes
# STARTTLS暗号化(25, 587番ポート) UseSTARTTLS=Yes
(ヽ´ω`) < その他の使用頻度が低いかもしれないオプション
上記の設定で、接続先、認証、暗号化の設定はひと通りできる。
これ以外のオプションは以下のとおり。数が多くないのでmanページに掲載されているものを全て列挙していく。
TLS接続時の証明書関連 - TLSFile, TLSKey, TLS_CA_File, TLS_CA_Dir
TLSFile
とTLSKey
でファイルの場所を指定することで、TLS接続用の証明書とキーを指定できる。
TLS_CA_File
は証明書検証のためのCAファイルの場所を、TLS_CA_Dir
はCAファイルが格納されているディレクトリの場所を指定する。
SMTP AUTH使用時の認証方式 - AuthMethod
AuthMethod
を未指定時、パスワードがプレーンテキストで流れる。TLS接続かSTARTTLS暗号化ならば大きな問題はないと思う。
サーバが対応していれば、下記の設定でCRAM-MD5での認証が行われる。
AuthMethod=cram-md5
送信元メールのドメイン名を書き換える - RewriteDomain
RewriteDomain
に任意のドメイン名を指定することで、From欄のメールアドレスのドメイン名を変更することができる。
ホスト名を指定する - Hostname
Hostname
にFQDNを指定することで、ホスト名を指定する。省略時にはhostnameコマンドの出力が使用される。
(ヽ´ω`) < これ、何に使うオプションなのかよくわかんないんすよね…
ENV Fromの書き換えを許可しない - FromLineOverride
FromLineOverride
にYES
を指定すると、ユーザにENV Fromの書き換えを許可しない。
デフォルトはNo
となっているので、ユーザは自由にENV Fromの値を書き換えることができる。
ENV Fromと通常のFromについては
3 エンベロープ(envelope)From/To とヘッダのFrom/To|メールマーケティングのCuenote
を参照。
システムアカウント宛のメールの送信先を指定 - Root
UID1000以下のシステムアカウント宛にメールを送った時に、転送されるメールアドレス。
UID1000以下のシステムアカウントに送る状況としては、Cronの実行結果をroot宛に送られたりとかそんな感じ。意外に多い。
Root=tsugihagi@hoge.com
(ヽ´ω`) < 他のページだとmailhubは全部小文字なんだけど…
ssmtp.conf(5): ssmtp config file - Linux man page
The possible keywords and their meanings are as follows (both are case-insensitive):
とのことで、基本的にはmailHubだろうがMAILHUBだろうがOKっぽい。値もYesだろうが、yESだろうが。