ローカルからのメールをgmail経由で送信する(sendmail編)

  • 環境
    • CentOS 5 + sendmail

必要なパッケージをインストール

sendmail-cf

# yum install sendmail-cf

authinfoファイルを作成

  • /etc/mail/authinfo を新規作成。gmailアカウントとパスワードを記述
AuthInfo:smtp.gmail.com "U:gmailuser@gmail.com" "P:gmailpassword" "M:PLAIN"
AuthInfo:smtp.gmail.com:587 "U:gmailuser@gmail.com" "P:gmailpassword" "M:PLAIN"

authinfo.dbファイルを作成

  • /etc/mail/authinfo.db をmakemapコマンドで作成
# makemap -r hash /etc/mail/authinfo.db < /etc/mail/authinfo

sendmail.mcを編集

  • 念のためバックアップ
# mv /etc/mail/sendmail.mc /etc/mail/sendmail.mc.1
# cp /etc/mail/sendmail.mc.1 /etc/mail/sendmail.mc
  • 編集前後の差分は下記。 (diff -u)
--- /etc/mail/sendmail.mc.1     2012-08-03 16:44:52.000000000 +0900
+++ /etc/mail/sendmail.mc       2012-08-03 16:50:34.000000000 +0900
@@ -23,7 +23,15 @@
 dnl # Uncomment and edit the following line if your outgoing mail needs to
 dnl # be sent out through an external mail server:
 dnl #
-dnl define(`SMART_HOST', `smtp.your.provider')dnl
+
+define(`confAUTH_OPTIONS', `A')dnl
+define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
+TRUST_AUTH_MECH(`EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
+FEATURE(`authinfo', `Hash -o /etc/mail/authinfo')dnl
+define(`SMART_HOST', `smtp.gmail.com')dnl
+define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
+define(`ESMTP_MAILER_ARGS', `TCP $h 587')dnl
+
 dnl #
 define(`confDEF_USER_ID', ``8:12)dnl
 dnl define(`confAUTO_REBUILD')dnl
@@ -49,6 +57,8 @@
 dnl # guaranteed secure.
 dnl # Please remember that saslauthd needs to be running for AUTH.
 dnl #
+TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
+define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
 dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
 dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
 dnl #

sendmail.cfを作成

# cd /etc/mail
# make

sendmailデーモン再起動

# /etc/init.d/sendmail restart

facebook slideshare rubygems github qiita