Como posso configurar o exim para usar o servidor SMTP do meu provedor (em um sistema não-Debian)?

1

Eu quero usar o exim para enviar e-mails por meio do servidor SMTP do meu provedor. No entanto, o Wiki do Arch é bastante confuso (o exim é muito mais simples em um sistema Debian). Segui as instruções na seção final , modificando o endereço SMTP de mail.internode.on.net para meu Servidor SMTP e modificando *@* [email protected] Ffr para *@* $1@my_emaildomain.com Ffr . Isso funcionou quando eu estava conectado à internet através do meu ISP.

No entanto, para usar isso na minha rede de trabalho, preciso autenticar. Tentei seguir as instruções listadas para o Gmail, enquanto alterava o URL, mas isso falhou com

authenticator iinet_route: cannot find authenticator driver "manualroute"

Como posso configurar exim para autenticação? (FWIW eu estou com iinet .)

EDITAR

Percebi que estava colocando as configurações do tipo "Gmail" nas partes erradas. Eu movi-os e não estou mais recebendo as mensagens de erro. No entanto, exim agora falha silenciosamente. Não recebo nenhuma mensagem de erro, mas nenhum email é entregue.

Aqui estão as alterações que fiz no padrão de fábrica:

--- 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()                   #
 ######################################################################

E aqui é o meu arquivo de configuração completo.

EDIT 2

Eu também tentei mudar a porta para 465, que também falha silenciosamente. (FWIW 587 funciona bem em msmtp.)

EDIT 3

Estas são as informações de um email com falha, usando exim -Mvl . A tentativa original de enviar usado 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

EDIT 4

Eu executei o comando de email novamente (conforme a edição 3) e obtive um erro ligeiramente diferente. Eu também vinculei a saída completa de 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

A saída de depuração completa é aqui .

    
por Sparhawk 07.11.2015 / 13:10

1 resposta

1

De acordo com o erro que você recebe, você colocou as sub-rotinas do exemplo do Gmail no wiki nas seções erradas. A configuração do exim é construída em partes distintas, na ordem:

  • main
    contém definições e configurações globais
  • acl
  • roteadores - como lidar com um endereço; primeiro hit é usado para que a ordem seja importante
  • transportes
    define maneiras de descartar uma mensagem, estas são referenciadas a partir dos roteadores acima; ordem não é importante
  • tentar novamente
    com que frequência repetir a entrega
  • reescrever
    alterar endereços, por exemplo mapear endereços internos para endereços globalmente utilizáveis
  • autenticadores
    define maneiras de autenticar; tanto como servidor e como cliente

A mensagem de erro authenticator iinet_route: cannot find authenticator driver "manualroute" indica claramente que você colocou uma sub-rotina de roteador na seção de autenticadores.

Coloque cada sub-rotina na seção relevante (ou seja, a definição do roteador após a linha begin routers e antes da linha begin transports , levando em conta a ordem etc.) e o erro deve desaparecer.

    
por 12.11.2015 / 10:43

Tags