Sendmail(自宅サーバ)
概要
- フレッツADSL開通により自宅サーバ(PC9821Ne3)を公開した旨を3月25日の日記に書きましたが、ここでは、iモード掲示板への書き込み通知を、CGIからSendmailを使って行う方法について紹介します。
・名犬?タローのページ【http://meikentaro.no-ip.com/index.htm】
Sendmailについて
- Sendmailの最新版はVer8.12.3です。本来は、最新版を使った方がいいのでしょうが、サーバを公開する訳では無く、CGIからのメール送信に使うだけなので、FreeBSD(98)2.2.7Rに付属しているものをそのまま使う事にします。
Sendmailの設定(/etc/sendmail.cf)
- 通常は、「CF」等のツールを使って設定ファイルを作成する様ですが、ここでは簡単に、「FreeBSD徹底活用1:翔泳社」付録CD-ROMに収録されているサンプルファイル(saba.cf)をコピーし、下記の修正を加えました。(文字列を検索して修正を加えました。)
【/etc/sendmail.cf】(全体はこちらです)
@自ドメイン名(3ヶ所)
home->そのまま
Aプロバイダドメイン名(1ヶ所)
provider.xx.jp ->mwa.biglobe.ne.jp
BSMTPサーバ名(1ヶ所)
smtp.provider.xx.jp ->mwa.biglobe.ne.jp
C利用ユーザ名(2ヶ所)
kame ->hnakamur
|
Sendmailの自動起動設定(/etc/rc.conf)
- マシン起動時にSendmailを起動するために、「/etc/rc.conf」のsendmail_enableを「"NO"」から「"YES"」に修正します。
【/etc/rc.conf】(修正分のみ)
sendmail_enable="YES" # Run the sendmail daemon (or NO).
sendmail_flags="-bd -q30m" # -bd is pretty mandatory.
|
CGIのsendmailのパス設定
- iモード掲示板CGIを以下の様に修正しました。
【CGIスクリプト修正分】
(前)$sendmail = '/usr/lib/sendmail';
(後)$sendmail = '/usr/sbin/sendmail';
|
動作確認
- iモード掲示板に書き込みを行い実際にメールを送信してみましたが、送信されません。ログを見るとエラーになっています。
Mar 31 16:52:12 michiko sendmail[5769]: QAA05769: from=nobody, size=329, class=0,
pri=30329, nrcpts=1, msgid=<200203310752.QAA05769@michiko.home>, relay=nobody@localhost
Mar 31 16:52:12 michiko sendmail[5771]: QAA05769: ruleset=check_compat, arg1=nobody,
arg2=******@docomo.ne.jp, relay=nobody@localhost, reject=553 ******@docomo.ne.jp... no permission
Mar 31 16:52:12 michiko sendmail[5771]: QAA05769: to=******@docomo.ne.jp,
delay=00:00:00, xdelay=00:00:00, mailer=smtp2, relay=mwa.biglobe.ne.jp, stat=Service unavailable
Mar 31 16:52:12 michiko sendmail[5771]: QAA05769: QAA05771: DSN: Service unavailable
Mar 31 16:52:12 michiko sendmail[5771]: QAA05771: to=root, delay=00:00:00, xdelay=00:00:00,
mailer=local, stat=Sent
|
- 原因は、CGIからのメール送信が「arg1=nobody」からとなり、発信制限に掛かっているためと判りました。そこで、「/etc/sendmail.cf」に利用ユーザとして「nobody」を追加しました。
【/etc/sendmail.cf修正】(全体はこちらです)
- 再度実行してみました。メールは下記エラー(User unknown)になりました。
Apr 1 00:27:22 michiko sendmail[6162]: AAA06162: from=nobody, size=329, class=0,
pri=30329, nrcpts=1, msgid=<200203311527.AAA06162@michiko.home>, relay=nobody@localhost
Apr 1 00:27:23 michiko sendmail[6164]: AAA06162: to=******@docomo.ne.jp,
ctladdr=nobody (65534/65534), delay=00:00:01, xdelay=00:00:01, mailer=smtp2,
relay=bgmgate1.biglobe.ne.jp. [202.225.89.133], stat=User unknown
Apr 1 00:27:23 michiko sendmail[6164]: AAA06162: AAA06164: DSN: User unknown
Apr 1 00:27:23 michiko sendmail[6164]: AAA06164: to=root, delay=00:00:00,
xdelay=00:00:00, mailer=local, stat=Sent
|
- 原因は、BIGLOBEの中継処理ではじかれているための様です。CGIからの送信先は、iモードメールのアドレス「******@docomo.ne.jp」にしているのですが、BIGLOBEの中継サーバが別のドメインへの転送を禁止している様です。そこで、CGIからの送信先を通常使っているBIGLOBEのメールアドレスに変更しました。
【CGIスクリプト修正分】
(旧)$tomail = '******@docomo.ne.jp'; # 書き込み時にメールを送信する送信先
(新)$tomail = 'hnakamur@mwa.biglobe.ne.jp'; # 書き込み時にメールを送信する送信先
|
- 再度実行してみました。めでたく送信OKとなりました。
Apr 1 00:21:43 michiko sendmail[6148]: AAA06148: from=nobody, size=324, class=0,
pri=30324, nrcpts=1, msgid=<200203311521.AAA06148@michiko.home>, relay=nobody@localhost
Apr 1 00:21:44 michiko sendmail[6150]: AAA06148: to=hnakamur@mwa.biglobe.ne.jp,
ctladdr=nobody (65534/65534), delay=00:00:01, xdelay=00:00:01, mailer=smtp2,
relay=bgmgate2.biglobe.ne.jp. [202.225.89.133], stat=Sent (2.0.0 g2VFMvh15924 Message accepted for delivery)
|
参考図書・サイト
トップへもどる
Copyright (c) 2002 Hiroshi Nakamura. All rights reserved.
|
|