sSMTP
更新日:2008/8/17
対応ソフトウェア:sSMTP 2.62-1
sSMTPでSMTP AUTH(認証方式:LOGIN)を使用するにはssmtp.confに以下の設定を追加する。
AuthUser=<ユーザID> AuthPass=<パスワード>
以下にサーバとのやりとりを示す。
サーバからそのサーバがサポートする認証方式が通知される。
S:250-AUTH PLAIN LOGIN
この例の場合は「PLAIN」「LOGIN」がサポートされる。他に「CRAM-MD5」「DIGEST-MD5」があるが、試験環境がないのでここでは割愛する。
使用する認証方式をサーバに送るとサーバから認証方式に応じたレスポンスが返るので必要な情報を送る。
ここでは「LOGIN」について説明する。
C:AUTH LOGIN S:334 VXNlcm5hbWU6 ← ログインプロンプト(「Username:」など) C:<ユーザID> ← サーバにユーザIDを送る S:334 UGFzc3dvcmQ6 ← パスワード入力プロンプト(「Password:」など) C:<パスワード> ← サーバにパスワードを送る S:235 ok authed ← 認証成功
プロンプトやユーザID/パスワードはすべてBase64エンコードされたものを使用する。
以降、メールデータを送信する。
(関連)
更新日:2009/11/24
対応ソフトウェア:sSMTP 2.63-1.1
公式サイト
http://packages.debian.org/source/sid/ssmtp
準備
導入に必要なもの
ssmtp_2.63.orig.tar.gz
ssmtp_2.63-1.1.diff.gz
導入OS
Ubuntu 9.04
インストール
配布ファイル展開
% gunzip ssmtp_2.63-1.1.diff.gz % tar zxvf ssmtp_2.63.orig.tar.gz % cd ssmtp-2.63 % patch -p1 < ../ssmtp_2.63-1.1.diff
make,インストール
% ./configure % make % sudo make install : Mail name [foo.bar.com]: ***.***.*** ← メール送信元ホストを指定 Please enter the SMTP port number [25]: ← SMTPポート番号を指定 ここで設定した内容は/usr/local/etc/ssmtp/ssmtp.confに保存される。
インストール物 (man,infoは除く)
/usr/local/sbin/ssmtp /usr/local/etc/ssmtp/revaliases /usr/local/etc/ssmtp/ssmtp.conf
各種設定
/usr/local/etc/ssmtp/ssmtp.confにて設定を行う。
詳細は以下を参照のこと。
(関連)
動作確認
テストメール送信
例えばメールサーバが「smtp.bar.com」の場合、まずssmtp.confを以下のように設定する。
root=foo mailhub=smtp.bar.com FromLineOverride=YES
次に以下のようなメール文を作成する。
To: foo@bar.com From: foo@bar.com Subject: sample sample
これをssmtpに渡してメールが送られていればよい。
ssmtp -t < mail.txt
送られていない場合はssmtp.confのDebug=をYESに設定してログを調査する。
更新日:2009/2/15
対応ソフトウェア:sSMTP 2.62-3
公式サイト
http://packages.debian.org/source/sid/ssmtp
準備
導入に必要なもの
ssmtp_2.62.orig.tar.gz
ssmtp_2.62-3.diff.gz
導入OS
Fedora 10
(関連)
デフォルトでインストールされているSendmailの無効化
まず、既にサービスが起動していれば停止する。
% sudo service sendmail stop
次にサービスを無効にする。
% sudo chkconfig sendmail off
sendmailのシンボリックリンクを削除する。
% sudo rm /usr/sbin/sendmail
(*) /usr/sbin/sendmailは/etc/alternatives/mtaにリンクしており、/etc/alternatives/mtaはさらに/usr/sbin/sendmail.sendmailにリンクしている。
インストール
配布ファイル展開
% gunzip ssmtp_2.62-3.diff.gz % tar zxvf ssmtp_2.62.orig.tar.gz % cd ssmtp % patch -p1 < ../ssmtp_2.62-3.diff
make,インストール
% ./configure % make % sudo make install : Mail name [foo.bar.com]: ***.***.*** ← メール送信元ホストを指定 Please enter the SMTP port number [25]: ← SMTPポート番号を指定 ここで設定した内容は/usr/local/etc/ssmtp/ssmtp.confに保存される。
各種プログラムでsendmailが呼び出された時にssmtpを実行するようにする。
% sudo ln -s /usr/local/sbin/ssmtp /usr/sbin/sendmail
インストール物 (man,infoは除く)
/usr/local/sbin/ssmtp /usr/local/etc/ssmtp/revaliases /usr/local/etc/ssmtp/ssmtp.conf
各種設定
/usr/local/etc/ssmtp/ssmtp.confにて設定を行う。
以下、主な設定項目について説明する。
root=<メールアドレス>
UIDが1000未満のシステムアカウント宛のメールが送信される場合の宛先メールアドレスを指定する。
root宛に送信されるcronジョブの実行結果などを送る場合に利用する。
デフォルトはpostmaster。
省略するとメールアドレスの書き換えは行われない。
ドメインを省略した場合はhostname=の設定が補完される(rewriteDomain=が設定されていればそちらが優先される)。
例)
root=foo@bar.com
mailhub=
メール送信先のSMTPサーバを指定する。
ポート番号が25以外の場合はコロンに続けてポート番号を指定する。
ドメインを省略した場合は自ホストのドメインが補完される。
デフォルトはmail。
例)
mailhub=mail.bar.com:8025
rewriteDomain=<ドメイン>
送信元を別ドメインに見せかける場合にそのドメインを指定する。
デフォルトは未設定。
hostname=<ホスト>
メール送信元ホストを指定する。
デフォルトはインストール時に指定したホストが記述されている。
FromLineOverride=
From:ヘッダの送信元アドレスを変更するかどうかを指定する。
YESを指定するとアドレスは書き換えず、YES以外を指定すると実際に送信したユーザに書き換える。
設定と動作が逆に見受けられるので注意が必要である。
デフォルトはYES以外。
Debug=
YESを指定するとSMTPサーバとのやりとりがログに出力される。
sSMTPがうまく動作しない場合の調査に便利である。
デフォルトはYES以外。
その他の設定項目
上記設定の他にSSL通信やSMTP AUTHに関する設定などがあるがここでは割愛する。
なお、SSL通信を行う場合はconfigure時に--enable-sslを指定しておく必要がある。
(関連)
動作確認
テストメール送信
例えばメールサーバが「smtp.bar.com」の場合、まずssmtp.confを以下のように設定する。
root=foo mailhub=smtp.bar.com FromLineOverride=YES
次に以下のようなメール文を作成する。
To: foo@bar.com From: foo@bar.com Subject: sample sample
これをsendmail(実際にはssmtp)に渡してメールが送られていればよい。
/usr/sbin/sendmail -t < mail.txt
送られていない場合はssmtp.confのDebug=をYESに設定してログを調査する。