- 更新日: 2013年6月25日
- CentOS & Linux
sendmail をインストールして root 宛のメールを Gmail に転送設定 〜 CentOS6
sendmail のインストールと設定を行います。また重要なメールは root 宛に届くので、それを普段使っている Gmail のメールアドレスへと転送させる設定を行います。GmailのSMTPサーバーを使います。
メール クライアントに POP を設定する – Gmail ヘルプ を参照に Gmail の SMTP サーバーのポート番号を確認。
このエントリーは、CentOS 6.4 インストール~設定手順の目次 の一部です。
Gmail の SMTP サーバーへ接続確認
Gmail SMTP サーバーへ telnet で接続確認を行います。
1 2 3 4 5 |
# telnet smtp.gmail.com 25 Trying 74.125.25.108... telnet: connect to address 74.125.25.108: Connection timed out |
となって接続出来ません。
1 2 3 4 5 6 7 |
# telnet smtp.gmail.com 587 Trying 74.125.25.109... Connected to smtp.gmail.com. Escape character is '^]'. 220 mx.google.com ESMTP 1sm1164344pbg.18 - gsmtp |
ポート587だとOKだと確認できました。telnet の終了は Ctrl + ] で。
メール送信のための /etc/hosts.allow の設定
あらかじめ以下を設定しておく。ALL: 127.0.0.1 としてホスト機自身を許可しておかないとメールが送れません。ここはまりました。
1 2 3 4 5 |
# vi /etc/hosts.allow ALL: 192.168. ALL: 127.0.0.1 |
sendmail のインストール
では、sendmailのインストール。(入ってなければ)
1 2 3 4 |
# yum -y install sendmail # yum -y install sendmail-cf |
メールアドレスとそのパスワードは以下と仮定します。
Gmailアドレス: hoge@gmail.com
Gmailパスワード: hogehoge
とりあずメールクライアントとして動けば良いので、以降の手順で sendmail の設定を行います。
/etc/mail/authinfo から /etc/mail/authinfo.db を makemap コマンドで生成
/etc/mail/authinfo に SMTP サーバーとメールの設定を書きます。
1 2 3 4 5 |
# vi /etc/mail/authinfo AuthInfo:smtp.gmail.com "U:hoge@gmail.com" "P:hogehoge" "M:PLAIN" AuthInfo:smtp.gmail.com:587 "U:hoge@gmail.com" "P:hogehoge" "M:PLAIN" |
sendmail 用のDBマップを makemap コマンドで作成。authinfo のアクセス権設定。
1 2 3 4 5 |
# makemap -r hash /etc/mail/authinfo.db < /etc/mail/authinfo # chown root:smmsp /etc/mail/authinfo* # chmod 640 /etc/mail/authinfo* |
/etc/mail/sendmail.mc の設定
sendmail.mc を設定します。メールのリレー先をGmailのsmtpサーバーに設定。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# vi /etc/mail/sendmail.mc dnl define(`SMART_HOST', `smtp.your.provider')dnl # 以下を追加 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 -------------------------------- |
さらに以下の変更を行います。
先頭のdnlを外して修正する。
1 2 3 4 5 6 7 8 9 |
-------------------------------------------------- dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl -------------------------------------------------- ↓ -------------------------------------------------- DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl -------------------------------------------------- |
以下の部分も、先頭のdnlを外して修正。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
-------------------------------------------------- dnl # Please remember that saslauthd needs to be running for AUTH. 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 # 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 -------------------------------------------------- |
以上で /etc/mail/sendmail.mc このファイルは編集終了。
1 2 3 |
dnl # Please remember that saslauthd needs to be running for AUTH. |
という行があったので saslauthd のデーモンを起動し自動起動に設定。
1 2 3 4 5 6 7 8 9 |
# chkconfig --list saslauthd saslauthd 0:off 1:off 2:off 3:off 4:off 5:off 6:off # service saslauthd start saslauthd を起動中: [ OK ] # chkconfig saslauthd on # chkconfig --list saslauthd saslauthd 0:off 1:off 2:on 3:on 4:on 5:on 6:off |
cf ファイル作成と root 宛のメールを gmail に転送する設定
m4 コマンドで cf ファイルを作成。
1 2 3 |
# m4 /usr/share/sendmail-cf/m4/cf.m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf |
root 宛のメールを gmail アドレスに転送設定。転送先変更を反映後、メールをテスト送信。
1 2 3 4 5 6 |
# vi /etc/aliases root: hoge@gmail.com # newaliases /etc/aliases: 77 aliases, longest 22 bytes, 791 bytes total |
sendmai を起動、自動起動の設定をする。
1 2 3 4 5 6 7 8 |
# chkconfig sendmail on # chkconfig --list sendmail sendmail 0:off 1:off 2:on 3:on 4:on 5:on 6:off # service sendmail start sendmail を起動中: [ OK ] sm-client を起動中: [ OK ] |
メール送信のテスト、root へのメールが転送できるか確認
メール送信テスト。
1 2 3 4 5 6 7 |
# mail hoge@gmail.com Subject: send a smile over to you. . EOT |
またroot宛のメールが転送されるかテスト。
1 2 3 |
# echo "send a smile through root" | mail root |
これでやっと届くようになった。ふぅ、sendmail の設定手こずって疲れました。私の場合、authinfo と root からの転送で同じGmailアドレスを使いました。つまり、root宛のメールは、root(from:hoge@gmail.com) → to:hoge@gmail.com と転送される。root 宛のメールを他のメアドに転送したい場合は、/etc/aliases のメアドを他のものに設定します。
- – 参考リンク –
- sendmailを使って内部メールをgmailへ転送する | レンタルサーバー・自宅サーバー設定・構築のヒント
- SendmailでGmailに転送 – みゃあの主記憶装置
- Configuring Sendmail to relay through Gmail SMTP
- CentOS & Linux の関連記事
- Job for nginx.service failedのNginxエラー
- upstream sent too big header while reading response header from upstream(Nginx/Rails)
- Can’t get information about user clamav(clamdエラー)
- STDERR: Exception in thread “main” java.lang.InternalErrorエラー
- Linuxサーバー容量を確認するコマンドdf,duをマスターする!
- rmでファイル削除後にdf -hで容量が減らない時の対処(Linux)
- Apacheをローカルネットワークのみに公開にする
- logwatchからのメールが来ないと思ったら…
- Linuxサーバの負荷や使用率を調査するコマンドと手順
- Bashの脆弱性もう一件CVE-2014-7169に対するパッチ適用
Leave Your Message!