web-dev-qa-db-ja.com

CentosのExim-GmailSMTPの構成

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つには、メールアカウントをトレーニングして受信トレイに入れる前に、メールがスパムになりました...

ありがとう、

3
Jay

hosts_require_authおよびhosts_require_tlsオプションを次のように変更する必要があります。

  hosts_require_auth = <; $Host_address
  hosts_require_tls = <; $Host_address

この問題は、IPv6を使用して送信するときに発生します。 IPv6で送信する場合、$Host_addressはIPv6アドレスになるため、コロン文字(:)が含まれます。コロンは通常、Eximのリスト区切り文字として使用されるため、アドレスの照合は失敗し、Eximはそれ自体を認証しません。

リストの前に<;を付けると、リストの区切り文字がセミコロンに変更され、IPv6アドレスの問題が回避されます。

1
Phil Ross

私は次の設定を使用しました

[〜#〜]ルーター[〜#〜]

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

その後、大量のデータを取得します。質問に出力を追加します

1
ALex_hha

これを試しましたか。

スマートホストとして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

1
Ivan