¿Cómo puedo configurar exim para usar el servidor SMTP de mi ISP (en un sistema que no sea Debian)?

¿Cómo puedo configurar exim para usar el servidor SMTP de mi ISP (en un sistema que no sea Debian)?

Yo quierousar eximpara enviar correos electrónicos a través del servidor SMTP de mi ISP. sin embargo, elWiki del arcoes bastante confuso (exim es mucho más simple en un sistema Debian). Seguí las instrucciones delsección final, modificando la dirección SMTP de mail.internode.on.netmi servidor SMTP y modificando a . Esto funcionó cuando estaba conectado a Internet a través de mi ISP.*@* [email protected] Ffr*@* $1@my_emaildomain.com Ffr

Sin embargo, para usar esto en mi red de trabajo, necesito autenticarme. Intenté seguir las instrucciones enumeradas para Gmail mientras cambiaba la URL, pero fallé.

authenticator iinet_route: cannot find authenticator driver "manualroute"

¿Cómo puedo configurar eximla autenticación? (FWIW estoy coninet.)

EDITAR

Me di cuenta de que había estado colocando la configuración similar a "Gmail" en las partes equivocadas. Los moví y ya no recibo mensajes de error. Sin embargo, eximahora falla silenciosamente. No recibo ningún mensaje de error, pero no se entrega ningún correo.

Estos son los cambios que hice a los valores predeterminados 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()                   #
 ######################################################################

Yaquíes mi archivo de configuración completo.

EDITAR 2

También intenté cambiar el puerto al 465, lo que también falla silenciosamente. (FWIW 587 funciona bien en msmtp).

EDITAR 3

Aquí está la información sobre un correo electrónico fallido, usando exim -Mvl. El intento original de envío 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

EDITAR 4

Ejecuté el comando de correo nuevamente (según la edición 3) y obtuve un error ligeramente diferente. También he vinculado a la salida completa deexim -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

La salida de depuración completa esaquí.

Respuesta1

Según el error que te sale, has puesto las estrofas del ejemplo de gmail en la wiki en las secciones equivocadas. La configuración exim se construye en distintas partes, en orden:

  • principal
    contiene definiciones y configuraciones globales
  • accl
  • enrutadores
    cómo manejar una dirección; Se utiliza el primer golpe, por lo que el orden es importante.
  • transporta
    define formas de deshacerse de un mensaje, a las que se hace referencia en los enrutadores anteriores; el orden no es importante
  • rever
    con qué frecuencia reintentar la entrega
  • volver a escribir
    cambiar direcciones, por ejemplo, para asignar direcciones internas a direcciones utilizables globalmente
  • autenticadores
    define formas de autenticación; tanto como servidor como cliente

El mensaje de error authenticator iinet_route: cannot find authenticator driver "manualroute"indica claramente que ha puesto una sección de enrutador en la sección de autenticadores.

Coloque cada estrofa en la sección correspondiente (es decir, la definición del enrutador después de la línea begin routersy antes de la línea begin transports, teniendo en cuenta el orden; etc.) y el error debería desaparecer.

información relacionada