SendmailでGmailに転送
実験用のLinux機が欲しい!ということでここを参考にサーバを作り始める。
が、しかし、しょっぱなroot宛のメールを転送する設定でつまずく・・・
書いてあるとおりにやったのに!大人はうそつきだ!
結局1日がかりでごにょごにょしてました。
参考にしたのはこのへん。
OP25B(Outbound Port 25 Blocking)対策 - CentOSで自宅サーバー構築
sendmailでGmailへ転送すること - ワインのばか
http://james-lloyd.com/getting-sendmail-use-gmail-as-a-relay-2/
Configuring Sendmail to relay through Gmail SMTP | AppGirlAppGirl
途中経過書いても仕方ないので最終的にやったことだけ書く。
まず環境
CentOS 5.4
Sendmail 8.13.8-2.el5
んで設定
まず /etc/mail/sendmail.mc の編集
dnl define(`SMART_HOST', `smtp.your.provider')dnl の次の行に以下を追加。
define(`SMART_HOST', `smtp.gmail.com')dnl
define(`ESMTP_MAILER_ARGS', `TCP $h 587')
define(`RELAY_MAILER_ARGS', `TCP $h 587')
FEATURE(authinfo, DATABASE_MAP_TYPE` -o 'MAIL_SETTINGS_DIR`authinfo')
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')
そんで
dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl のコメントを外す。
DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
最後に
dnl FEATURE(masquerade_envelope)dnlの行の次に以下を追加。
FEATURE(masquerade_envelope)dnl
FEATURE(genericstable, DATABASE_MAP_TYPE` -o 'MAIL_SETTINGS_DIR`genericstable')
GENERICS_DOMAIN_FILE(MAIL_SETTINGS_DIR`genericsdomain')
FEATURE(`generics_entire_domain')
次はauthinfoファイルを作る。
中身はこんな感じ。
makemap hash /etc/mail/authinfo.db < /etc/mail/authinfo
次はgenericsdomainファイルを作る。
これでOK。次はgenericstableファイルを作る。
でgenericstable.dbを作る。makemap hash /etc/mail/genericstable.db < /etc/mail/genericstable
hoge@gmail.comは送信に使うgmailアカウントなので各自置き換えること。
sendmailの設定はこれで終わりなので設定を反映させる。
/etc/rc.d/init.d/sendmail reload
最後に送信先を設定する。
/etc/aliasesのroot:なんたらかんたら って行を書き換える。
デフォルトではコメントになってた気がする。
#root: michael
root: huga@gmail.com
これでroot宛のメールはhuga@gmail.comに送られる。
newaliases
echo test|mail root