YahooBB OP25B対策 (sendmail編)
OP25B実施後でも、ダイナミックDNSによる自前のSMTPサーバーを継続運用する為の記録

1.sendmailのSMTP-AUTH対応

Cyrus SASLをportsからインストールした後、
/etc/make.conf に下記を追加し、sendmailをコンパイルし直す。

ファイル /etc/make.conf

追加内容
SENDMAIL_CFLAGS=-I/usr/local/include/sasl1 -DSASL
SENDMAIL_LDFLAGS=-L/usr/local/lib
SENDMAIL_LDADD=-lsasl


参考URL
http://www.freebsd.org/doc/ja_JP.eucJP/books/handbook/smtp-auth.html

2.Yahoo SMTPサーバーのSMTP-AUTHクライアントとして動作するよう設定

 ①.Change directory to where your sendmail configuration files (sendmail.mc and sendmail.cf) are located,usually /etc/mail/.
 ②.Create a safe subdirectory (suggested name auth/):
# mkdir auth
# chmod 700 auth

③.Create a file with your authentication information (suggested name auth/client-info):

AuthInfo:your.isp.net "U:root" "I:user" "P:password"

filling in your ISP's mail server, your user name, and your password.
(Note: Earthlink, and perhaps other ISP's, requires your full e-mail address as a user name.)

以下、実際のclient-infoの内容
AuthInfo:ybbsmtp.mail.yahoo.co.jp "U:[Yahoo! JAPAN ID]" "I:[登録メールアドレス(メイン)]" "P:[Yahoo! JAPAN IDのパスワード]"

④.Generate the authentication database and make both files readable only by root:
# cd auth
# makemap hash client-info < client-info
# chmod 600 client-info*
# cd ..

⑤. Add the following lines to your sendmail.mc file, filling in your ISP's mail server:

define(`SMART_HOST',`your.isp.net')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
FEATURE(`authinfo',`hash /etc/mail/auth/client-info')dnl

*以下、実際のsendmail.mc 追加分

dnl 20061204 for OP25B
define(`SMART_HOST',`ybbsmtp.mail.yahoo.co.jp')dnl --- YahooのSMTPサーバーを指定
define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl --- Submissionポートを使う
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl --- SMTP AUTHクライアントとして動作
FEATURE(`authinfo',`hash /etc/mail/auth/client-info')dnl

  *イメージ図
 


参考URL
http://www.sendmail.org/~ca/email/auth.html

3.Yahoo! JAPAN ID 登録情報に、自前のSMTPサーバーで使用するメールアドレスを登録。
  
  !実質、5アカウントしか登録できない為、プロバイダーもどきで自分の分を除いて5つ以上の
   メールアカウントを発行している場合、継続サービスは困難。

4.携帯端末等への転送の為、procmailを導入

*YahooBBの場合、メールヘッダーの envelope-from が、Yahoo! JAPAN ID 登録情報に無い場合、
リレーが拒否されるので、procmailにて envelope-from の書き換えを実現する。
(procmailは、メールの振分け等にも使えるので一石二鳥)

 まず、envelope-from 書換えのために、転送専用アカウントを作成し、そのアカウントの
 メールアドレス [転送専用アカウント]@[オリジナルドメイン] をYahoo! JAPAN IDに
 登録しておく。
 
 procmailをインストール後、転送専用アカウント配下に以下を配置
 
ファイル ~/.forward

内容の一例

"|IFS=' ' && exec /usr/local/bin/procmail -f- || exit 75 #[ユーザーアカウント]"

ファイル ~/.procmailrc

レシピの一例

:0 c
* ! ^X-Loop: [ユーザーアカウント]@[オリジナルドメイン] --- ループ防止
! [転送先メールアドレス]

Yahoo! JAPAN ID に未登録のアドレスで送信したい場合は、sendmailのaliasに予め宛先を
登録しておくことで、一旦転送専用アカウントに転送し、procmailにより配信しなおす事により
envelope-fromを書換える。
これにより、[転送専用アカウント]@[オリジナルドメイン] が、envelope-from となる。

例えば、プロバイダーのPOPから fetchmail 等で読んだメールや、オリジナルドメイン上の
アドレスに受信したメールを携帯端末その他に転送したい場合、上のプロセスを踏まない限り、
envelope-from が大元の送信者の envelope-fromとなってしまう為、YahooのSMTPサーバー
にリレーを拒否されてしまう。。。

このような場合に、受信したメールを一旦転送専用アカウントに転送することで、envelope-from
がYahoo! JAPAN ID に登録されているアドレスに置き換えられ、YahooのSMTPサーバーもリレー
してくれるという訳である。








| 海辺管理備忘録 | 06:59 | comments (1) | trackback (0) |
mbstringについて
php.iniの方は、先に入れたグループウエアの為に、
mbstring.internal_encoding = EUC-JP
mbstring.encoding_translation = On
としてあるので、weblogの下の.htaccessの内容を下記として暫定対応。

php_flag mbstring.encoding_translation Off
php_flag mbstring.http_input pass
php_flag mbstring.http_output pass







| 海辺管理備忘録 | 20:26 | comments (0) | trackback (0) |

  
CALENDAR
S M T W T F S
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31   
<<   10 - 2019   >>
PROFILE
OTHERS
ARCHIVES