6月末頃からYahooBBがOP25Bを開始したため、自宅サーバからメール送信ができなくなってしまいました。単純にYahooBBのSMTPサーバを経由するようにしただけでははじかれてしまう為、SMTP認証が必要です。
SendmailのAuthinfoを使うためにCyrus SASLをインストールします。各種設定ファイルを変更した後、Sendmailの再インストール・再起動を行います。

下記が契約しているさくらのレンタルサーバ経由でメールを送れるようにした手順です。
(私はさくらのサーバを使いましたが、YahooBBや他のプロバイダのサーバでも同様の手順でいけると思います。)
1.メールサーバの機能を確認する
契約しているプロバイダ等のサーバにtelnet接続し、サーバの条件を調べます。確認するポートはsmtp(25)とsubmission(587)です。
<さくらのサーバ>
# telnet hoge.sakura.ne.jp 25
Trying aaa.bbb.ccc.ddd...
telnet: connect to address aaa.bbb.ccc.ddd: Connection refused
telnet: Unable to connect to remote host
smtp(25)ポートはNG。
# telnet hoge.sakura.ne.jp 587
Trying aaa.bbb.ccc.ddd...
Connected to hoge.sakura.ne.jp.
Escape character is '^]'.
220 hoge.sakura.ne.jp ESMTP Sendmail 8.13.6/8.13.6; Mon, 23 Jul 2007 17:50:10 +0900 (JST)
EHLO localhost
250-hoge.sakura.ne.jp Hello softbanknnnnnnnnnnnn.bbtec.net [aaa.bbb.ccc.ddd], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-AUTH CRAM-MD5 DIGEST-MD5 LOGIN PLAIN ← SMTP認証
250-STARTTLS ← TLSによる暗号化
250-DELIVERBY
250 HELP
submission(587)ポートを使ってSMTP認証を通せばいけそうです!
<YahooBBのサーバ>
# telnet ybbsmtp.mail.yahoo.co.jp 25 Trying 124.83.155.241... Connected to ybbsmtp.mail.yahoo.co.jp. Escape character is '^]'. 220 ybbsmtp08.mail.ogk.yahoo.co.jp ESMTP EHLO localhost 250-ybbsmtp08.mail.ogk.yahoo.co.jp 250-AUTH LOGIN PLAIN ← SMTP認証 250-PIPELINING 250 8BITMIME# telnet ybbsmtp.mail.yahoo.co.jp 587
Trying 124.83.155.241...
Connected to ybbsmtp.mail.yahoo.co.jp.
Escape character is '^]'.
220 ybbsmtp07.mail.ogk.yahoo.co.jp ESMTP
EHLO localhost
250-ybbsmtp07.mail.ogk.yahoo.co.jp
250-AUTH LOGIN PLAIN ← SMTP認証
250-PIPELINING
250 8BITMIMEsmtp(25)でもsubmission(587)でもSMTP認証を通せばいけそうです。
2.Sendmailの設定を修正する
<authinfoの設定ファイル作成>
cd /etc/mailvi authinfo
AuthInfo:hoge.sakura.ne.jp "U:MAIL@hoge.sakura.ne.jp" "P:PASSWORD" "M:CRAM-MD5"
makemap hash authinfo < authinfovi msp-authinfo
AuthInfo:hoge.sakura.ne.jp "U:MAIL@hoge.sakura.ne.jp" "P:PASSWORD" "M:CRAM-MD5"
makemap hash msp-authinfo < msp-authinfo
<cf/cf/sendmail.mcに設定追加>
デーモンにSMTP認証の機能を追加
Authinfoの設定
FEATURE(`authinfo', `hash -o /etc/mail/authinfo')dnl
define(`confAUTH_MECHANISMS', `LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl
TRUST_AUTH_MECH(`LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnlプロバイダ等のメールサーバへリレーする設定(ポート587へ接続)
define(`SMART_HOST', `relay:hoge.sakura.ne.jp')dnl
define(`confRELAY_MAILER', `esmtp')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
<cf/cf/submit.mcに設定追加>
ローカルからの送信にSMTP認証の機能を追加
MSAの設定
FEATURE(`msp', `hoge.sakura.ne.jp', `MSA')dnlAuthinfoの設定
FEATURE(`authinfo', `hash -o /etc/mail/msp-authinfo')
<devtools/Site/site.config.m4に設定追加>
コンパイル時のオプション等を追加
APPENDDEF(`confENVDEF', `-DSASL')dnl
APPENDDEF(`conf_sendmail_LIBS', `-lsasl')dnl
APPENDDEF(`confLIBDIRS',`-L/usr/local/lib')dnl
APPENDDEF(`confINCDIRS',`-I/usr/local/include/sasl1')dnl
define(`confAUTH_MECHANISMS', `LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl
TRUST_AUTH_MECH(`LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl
define(`confDEF_AUTH_INFO', `/etc/mail/authinfo')dnl
<sendmailをビルドし直す>
sendmailの再インストール cd (sendmailのソース場所) sh Build sh Build install cd cf/cf sh Build sendmail.cf sh Build install-cfプロセスの再立ち上げ
sendmailのプロセスをkill
sendmail -bd -q15m ← デーモン
sendmail -ac -q15m ← キュー配信用ここで、下記のメッセージがでる場合は、sendmailからcyrus SASL が利用できるようになっていません。次項に従ってインストールしてください。
Warning: Option: AuthMechanisms requires SASL support (-DSASL)
3.Cyrus SASLをインストールする
cd /usr/ports/security/cyrus-sasl make installあとは、前項と同様にしてプロセスを立ち上げてください。
それでもダメな場合は、下記も行ってみてください。cd (sendmailのソース場所)
sh Build clean
rm -Rf obj.FreeBSD.?.?-?.i386/
