ISP の SMTP サーバー (Debian 以外のシステム) を使用するように exim を設定するにはどうすればよいでしょうか?

ISP の SMTP サーバー (Debian 以外のシステム) を使用するように exim を設定するにはどうすればよいでしょうか?

したいeximを使用するISPのSMTPサーバー経由でメールを送信したいのですが、アーチウィキ非常に分かりにくいです(Debianシステムではeximの方がずっと簡単です)。最終セクション、SMTP アドレスを からmail.internode.on.netSMTP サーバーに変更し、に変更します。これは、ISP 経由でインターネットに接続しているときに機能しました。*@* [email protected] Ffr*@* $1@my_emaildomain.com Ffr

しかし、これを職場のネットワークで使用するには、認証が必要です。Gmailの指示に従ってURLを変更しようとしましたが、失敗しました。

authenticator iinet_route: cannot find authenticator driver "manualroute"

認証を設定するeximにはどうすればいいですか?(参考までに、私はネット

編集

「Gmail」のような設定を間違った場所に入力していたことに気付きました。設定を移動したところ、エラー メッセージが表示されなくなりました。ただし、exim今度は何も表示されずに失敗します。エラー メッセージは表示されませんが、メールは配信されません。

工場出荷時のデフォルトに加えた変更は次のとおりです。

--- exim.conf.factory_default   2015-08-03 02:14:31.000000000 +1000
+++ exim.conf   2015-11-10 08:09:54.196287461 +1100
@@ -402,7 +402,7 @@

   # Deny unless the sender address can be verified.

-  require verify        = sender
+  #require verify        = sender

   # Accept if the message comes from one of the hosts for which we are an
   # outgoing relay. It is assumed that such hosts are most likely to be MUAs,
@@ -552,14 +552,19 @@
 # If the DNS lookup fails, no further routers are tried because of the no_more
 # setting, and consequently the address is unrouteable.

-dnslookup:
-  driver = dnslookup
-  domains = ! +local_domains
-  transport = remote_smtp
-  ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
+#dnslookup:
+#  driver = dnslookup
+#  domains = ! +local_domains
+#  transport = remote_smtp
+#  ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
 # if ipv6-enabled then instead use:
 # ignore_target_hosts = <; 0.0.0.0 ; 127.0.0.0/8 ; ::1
-  no_more
+#  no_more
+
+iinet_route:
+  driver = manualroute
+  transport = iinet_relay
+  route_list = * mail.iinet.net.au


 # This alternative router can be used when you want to send all mail to a
@@ -735,6 +746,12 @@
 address_reply:
   driver = autoreply

+iinet_relay:
+  driver = smtp
+  port = 587
+  hosts_require_auth = <; $host_address
+  hosts_require_tls = <; $host_address
+


 ######################################################################
@@ -769,6 +786,7 @@
 # There are no rewriting specifications in this default configuration file.

 begin rewrite
+*@* [email protected] Ffr



@@ -821,6 +839,12 @@
 #  server_advertise_condition = ${if def:tls_in_cipher }


+iinet_login:
+  driver = plaintext
+  public_name = LOGIN
+  hide client_send = : [email protected] : PASSWORD_HERE
+
+
 ######################################################################
 #                   CONFIGURATION FOR local_scan()                   #
 ######################################################################

そしてここ完全な設定ファイルです。

編集2

ポートを 465 に変更することも試みましたが、これも何も表示されずに失敗します。(ちなみに、587 は msmtp では正常に動作します。)

編集3

失敗したメールに関する情報は、 を使用していますexim -Mvl。 送信を試みた最初のメールは、echo body | /usr/bin/mail -s subject -r [email protected] [email protected]

2015-11-10 11:53:39 Received from [email protected] U=sparhawk P=local S=428 id=20151110005339.ag4kfrHaJ%[email protected]
2015-11-10 11:53:41 [email protected] R=iinet_route T=iinet_relay defer (-42): authentication required but authentication attempt(s) failed

編集4

もう一度メールコマンドを実行したところ(編集3のとおり)、少し異なるエラーが発生しました。また、次の完全な出力へのリンクも貼っておきます。exim -d+all -M messageID <ID>

$ sudo exim -Mvl 1ZwMHr-0008I4-92
2015-11-11 14:41:31 Received from [email protected] U=lee P=local S=426 id=20151111034131.VRuQn__aN%[email protected]
2015-11-11 14:41:31 [email protected] R=iinet_route T=iinet_relay defer (-53): retry time not reached for any host

完全なデバッグ出力はここ

答え1

表示されたエラーによると、Wiki の Gmail の例のスタンザを間違ったセクションに配置したようです。Exim 構成は、次の順序で個別の部分から構成されています。

  • 主要
    グローバル定義と設定が含まれています
  • ACL
  • ルーター
    アドレスの処理方法。最初のヒットが使用されるため、順序が重要です。
  • 輸送
    メッセージの処分方法を定義します。これらは上記のルータから参照されます。順序は重要ではありません。
  • リトライ
    配信を再試行する頻度
  • リライト
    アドレスの変更(例:内部アドレスをグローバルに使用可能なアドレスにマッピングする)
  • 認証子
    サーバーとクライアントの両方として認証する方法を定義します

エラー メッセージはauthenticator iinet_route: cannot find authenticator driver "manualroute"、認証セクションにルーター スタンザを配置したことを明確に示しています。

各スタンザを関連するセクション(つまり、ルーター定義を 行の後begin routers、 行の前begin transportsなど、順序を考慮する)に配置すると、エラーは解消されるはずです。

関連情報