我想要使用进出口银行通过我的 ISP 的 SMTP 服务器发送电子邮件。但是,那拱门维基相当令人困惑(exim 在 Debian 系统上要简单得多)。我按照中的说明进行操作最后一节,将 SMTP 地址从 修改mail.internode.on.net
为我的 SMTP 服务器,并修改为。当我通过 ISP 连接到互联网时,此方法有效。*@* [email protected] Ffr
*@* $1@my_emaildomain.com Ffr
但是,要在我的工作网络上使用它,我需要进行身份验证。我尝试按照 Gmail 列出的说明进行操作,同时更改网址,但失败了
authenticator iinet_route: cannot find authenticator driver "manualroute"
如何设置exim
身份验证? (FWIW我和互联网.)
编辑
我意识到我把类似“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,这也失败了。 (FWIW 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
我再次运行 mail 命令(按照编辑 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 配置由不同的部分组成,按顺序:
- 主要的
包含全局定义和设置 - 访问控制列表
- 路由器
如何处理地址;使用第一个命中,因此顺序很重要 - 运输
定义处理消息的方法,这些是从上面的路由器引用的;顺序并不重要 - 重试
重试投递的频率 - 改写
更改地址,例如将内部地址映射到全局可用地址 - 验证器
定义服务器和客户端的身份验证方式
该错误消息authenticator iinet_route: cannot find authenticator driver "manualroute"
清楚地表明您已将路由器节放入验证器部分。
将每个节放在相关部分中(即,路由器定义在该行之后begin routers
和该行之前begin transports
,考虑到顺序;等等),错误就会消失。