ようやく対応ができたので設定方法をまとめておこうと思う。
環境
CentOS 5.5 / sendmail Version 8.13.8
なお、sendmailのバージョンを確認する場合、以下のコマンドを実行します。
1: sendmail -d0.101
<p><!--CRLF--></p>
設定したいこと
root宛のメールをGmailのSMTPを経由してGmailで受信すること。
設定方法
sendmail.mcの編集
GmailのSMTPサーバを使用してメールを送信するためには、OP25Bの対応を行う必要があります。sakuraのVPSでは使用期間は25番ポートが閉じられるそうなので、仕様期間後に試してみることをおすすめします。
具体的なsendmailの設定としては次のような設定を行います。
- dnl define(`SMART_HOST', `smtp.your.provider')dnlの次の行に以下の内容を入力します。
1: define(`SMART_HOST', `smtp.gmail.com')dnl
2: define(`ESMTP_MAILER_ARGS', `TCP $h 587')
3: define(`RELAY_MAILER_ARGS', `TCP $h 587')
4: FEATURE(authinfo, DATABASE_MAP_TYPE` -o 'MAIL_SETTINGS_DIR`authinfo')
5: define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')
6: TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')
- dnl # DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnlのコメントを解除します。
1: DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
- dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnlのコメントを解除します。
1: DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
- dnl FEATURE(masquerade_envelope)dnlの次の行に以下の内容を入力します。
1: FEATURE(masquerade_envelope)dnl
2: FEATURE(genericstable, DATABASE_MAP_TYPE` -o 'MAIL_SETTINGS_DIR`genericstable')
3: GENERICS_DOMAIN_FILE(MAIL_SETTINGS_DIR`genericsdomain')
4: FEATURE(`generics_entire_domain')
以上でsendmail.mcの編集は終了です。
以下のコマンドを実行し、sendmail.mcからsendmail.cfを作成します。
1: m4 /usr/share/sendmail-cf/m4/cf.m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
authinfoファイルの作成
以下のコマンドよりauthinfoファイルを作成します。
1: vi /etc/mail/authinfo
authinfoファイルにはSMTPの認証情報を入力します。
例:vi AuthInfo:smtp.gmail.com "U:root" "I:nasubi@gmail.com" "P:パスワード"
authinfoファイルが作成できたら以下のコマンドでauthinfo.dbファイルを作成します。
1: makemap hash /etc/mail/authinfo.db < /etc/mail/authinfo
genericsdomainファイルとgenericstableファイルの作成
以下のコマンドよりgenericsdomainファイルを作成します。
1: echo localhost >> /etc/mail/genericsdomain
2: echo `hostname` >> /etc/mail/genericsdomain
また、以下のコマンドを実行することでgenericstableファイルを作成します。
1: echo root nasubi@gmail.com > /etc/mail/genericstable
2: makemap hash /etc/mail/genericstable.db < /etc/mail/genericstable
3:
ここまででsendmailの設定は終了です。以下のコマンドでsendmailを再起動しましょう。
1: /etc/rc.d/init.d/sendmail reload
再起動の時にOKが出なかった場合、ここまでの設定で何か問題がある可能性があります。もう一度設定内容を確認してください。
root宛のメール転送設定
ここまではsendmailでGmailのSMTP経由でメールを送信できるように設定を行いました。これからはroot宛のメールを転送する設定を行います。
次のコマンドでaliasesファイルを編集します。
1: vi /etc/aliases
編集する内容は最終行にあるrootの設定項目です。
1: Person who should get root's mail
2: oot:marc
3: root:nasubi@gmail.com
aliasesファイルを編集したら、変更内容を反映するため以下のコマンドを実行します。
1: newaliases
最後にコマンドで、
1: echo test|mail root
と実行してメールが設定したアドレスで受信できれば設定完了です。
設定を行っていてうまくいかないことがあると思いますが、そういうときはログファイル(/var/log/maillog)を確認してみると解決への糸口がつかめるかもしれません。