Gmail(実際には私のドメインのGoogleアプリ)を介してメールを送信するようにEximを設定したいと思います。
ルーター、トランスポート、オーセンティケーターを追加しました。具体的には:
gmail_route:
driver = manualroute
transport = gmail_relay
route_list = * smtp.gmail.com
gmail_relay:
driver = smtp
port = 587
hosts_require_auth = $Host_address
hosts_require_tls = $Host_address
gmail_login:
driver = plaintext
public_name = LOGIN
hide client_send = :[email protected]:mypassword
これをDebianのExim用に設定することはできましたが、Centosでは理解できません。
ログを監視しながら送信しようとすると、「IPアドレスが見つかりません...」と表示され、次に「リモートメールサーバーからのSMTPエラー...」と表示されます。また、「認証が必要です」と書かれています。
詳細は次のとおりです。someone@ gmail.comに送信しているふりをします。
[email protected] R=gmail_route T=gmail_relay: SMTP error from remote mail server after MAIL FROM:<[email protected]> SIZE=1492:
Host gmail-smtp-msa.l.google.com [2a00:1450:4001:c02::6d]:
530-5.5.1 Authentication Required. Learn more at\n530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 k41sm12066343een.19 - gsmtp
これを修正するためにできることはありますか?私は主に自分自身にアラートメールを送信するためにそれを使用することを計画しています(fail2ban、logwatchなど)。また、デフォルトのExim設定は機能しているようですが、hostname @ mydomain.comのようなgappsメールを使用したいと思います。1つには、メールアカウントをトレーニングして受信トレイに入れる前に、メールがスパムになりました...
ありがとう、
hosts_require_auth
およびhosts_require_tls
オプションを次のように変更する必要があります。
hosts_require_auth = <; $Host_address
hosts_require_tls = <; $Host_address
この問題は、IPv6を使用して送信するときに発生します。 IPv6で送信する場合、$Host_address
はIPv6アドレスになるため、コロン文字(:
)が含まれます。コロンは通常、Eximのリスト区切り文字として使用されるため、アドレスの照合は失敗し、Eximはそれ自体を認証しません。
リストの前に<;
を付けると、リストの区切り文字がセミコロンに変更され、IPv6アドレスの問題が回避されます。
私は次の設定を使用しました
[〜#〜]ルーター[〜#〜]
send_via_gmail:
driver = manualroute
domains = ! +local_domains
transport = gmail_smtp
route_list = * smtp.gmail.com
[〜#〜] transport [〜#〜]
gmail_smtp:
driver = smtp
port = 587
hosts_require_auth = $Host_address
hosts_require_tls = $Host_address
[〜#〜]オーセンティケーター[〜#〜]
gmail_login:
driver = plaintext
public_name = LOGIN
client_send = : [email protected] : 7654321
いくつかの簡単なテスト
# swaks -s 127.0.0.1 --to [email protected] --from [email protected]
=== Trying 127.0.0.1:25...
=== Connected to 127.0.0.1.
<- 220 mail.example.net, [127.0.0.1]
-> EHLO mail.example.net
<- 250-mail.example.net Hello localhost [127.0.0.1]
<- 250-SIZE 52428800
<- 250-PIPELINING
<- 250-STARTTLS
<- 250 HELP
-> MAIL FROM:<[email protected]>
<- 250 OK
-> RCPT TO:<[email protected]>
<- 250 Accepted
-> DATA
<- 354 Enter message, ending with "." on a line by itself
-> Date: Wed, 05 Mar 2014 10:22:55 -0500
-> To: [email protected]
-> From: [email protected]
-> Subject: test Wed, 05 Mar 2014 10:22:55 -0500
-> X-Mailer: swaks v20130209.0 jetmore.org/john/code/swaks/
->
-> This is a test mailing
->
-> .
<- 250 OK id=1WLDep-0004ED-Kb
-> QUIT
<- 221 mail.example.net closing connection
=== Connection closed with remote Host.
メールログファイルを確認する
# cat /var/log/exim/main.log | grep 1WLDep-0004ED-Kb
2014-03-05 10:22:55 1WLDep-0004ED-Kb <= [email protected] H=localhost (mail.example.net) [127.0.0.1] P=esmtp S=479
2014-03-05 10:22:55 1WLDep-0004ED-Kb gmail-smtp-msa.l.google.com [2a00:1450:4001:c02::6d] Network is unreachable
2014-03-05 10:23:00 1WLDep-0004ED-Kb => [email protected] R=send_via_gmail T=gmail_smtp H=gmail-smtp-msa.l.google.com [173.194.70.108] X=UNKNOWN:ECDHE-RSA-AES128-GCM-SHA256:128
2014-03-05 10:23:00 1WLDep-0004ED-Kb Completed
Eximはデバッグモードで実行できます
# echo -e "helo localhost\nmail from:<[email protected]>\nrcpt to:<[email protected]>\nDATA\nHello world\n.\nquit" | exim -bhc 127.0.0.1 -d+all
その後、大量のデータを取得します。質問に出力を追加します
これを試しましたか。
スマートホストとしてGMailを使用する:
注:以下は、オーセンティケーターの開始後など、構成ファイルの適切なセクションに配置する必要があります。
Dnslookupルーターの前または代わりにルーターを追加します。
gmail_route:ドライバー=手動ルートトランスポート= gmail_relay route_list = * smtp.gmail.com
トランスポートを追加します。
gmail_relay:ドライバー= SMTPポート= 587 hosts_require_auth = $ Host_address hosts_require_tls = $ Host_address
オーセンティケーターを追加します([email protected]とmypasswordを自分のアカウントの詳細に置き換えます):
gmail_login:ドライバー=プレーンテキストpublic_name =ログイン非表示client_send =:[email protected]:mypassword
$ Host_addressは、smtp.gmail.comの代わりにhosts_require_authとhosts_require_tlsに使用され、時折発生する5305.5.1認証に必要なエラーを回避します。これらは、smtp.gmail.comのDNSクエリでIPアドレスが変更されたことが原因です。 $ Host_addressは、gmail_routeルーターによって解決された特定のIPアドレスに展開されます。セキュリティを強化するには、アプリケーションごとのパスワードを使用します。これは、GoogleAppsアカウントでも機能します。
出典: https://wiki.archlinux.org/index.php/Exim_with_Remote_SMTP_server