Exim4 Office 365 smtp relay

Fórumok

Hello. Szeretnék beállítani egy vestacp alatt található exim4 szervert, hogy az Office 365 alatt található exhange szerverrel továbbítsa a leveleket autentikált smtpn keresztül. Jelenleg az alábbi konfigurációt használom, valakinek van ötlete, hogy hol van benne a hiba? Esetleg az exchangeben kell beállítani valamit, hogy alapból bármilyen tartományból érkező levelet átengedjen? Köszönöm a segítséget.

/etc/exim4/exim4.conf.template

begin authenticators

# Office365 login
office365_login:
  driver = plaintext
  public_name = LOGIN
  client_send = ":anya@csavar.onmicrosoft.com:fa312312dasdnla1EE"

begin routers

# Office365 smarthost
office365_relay:
  driver = manualroute
  domains = ! +local_domains
  transport = office365_smtp
  route_list = * smtp.office365.com::587;
  host_find_failed = defer
  no_more

begin transports

# Office365 smtp
office365_smtp:
  driver = smtp
  port = 587
  hosts_require_auth = $host_address
  hosts_require_tls = $host_address

/etc/exim4/passwd.client

*.office365.com:anya@csavar.onmicrosoft.com:fa312312dasdnla1EE

A jelenlegi error: 

2020-04-09 19:02:37 1jMgBx-0006n5-NF <= test@vodor.hu U=admin P=local S=585 id=991c59282ae0322d7ecc6d568a9e67fb@vodor.hu
2020-04-09 19:02:43 1jMgBx-0006n5-NF H=LHR-efz.ms-acdc.office.com [40.100.174.226] TLS error on connection (recv): The TLS connection was non-properly terminated.
2020-04-09 19:02:43 1jMgBx-0006n5-NF H=LHR-efz.ms-acdc.office.com [40.100.174.226] TLS error on connection (send): The specified session has been invalidated for some reason.
2020-04-09 19:02:43 1jMgBx-0006n5-NF ** szivarozo@pingvin.com R=office365_relay T=office365_smtp H=LHR-efz.ms-acdc.office.com [40.100.174.226] X=TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256 CV=no: SMTP error from remote mail server after pipelined MAIL FROM:<test@vodor.hu> SIZE=1626: 530 5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM [LO2P265CA0007.GBRP265.PROD.OUTLOOK.COM]
2020-04-09 19:02:43 1jMgC3-0006nI-6M <= <> R=1jMgBx-0006n5-NF U=Debian-exim P=local S=2286
2020-04-09 19:02:43 1jMgBx-0006n5-NF Completed
2020-04-09 19:02:43 1jMgC3-0006nI-6M => test <test@vodor.hu> R=localuser T=local_delivery
2020-04-09 19:02:43 1jMgC3-0006nI-6M Completed
 

Hozzászólások

Szerkesztve: 2020. 04. 10., p - 21:33

Az authenticatorból hiányzik a client_condition, anélkül nem veszi figyelembe.

A hosts_require_auth/hosts_require_tls megszívathat, ha több IP címe van a másik gépnek, és mivel a route-tal már kiválasztottad, hogy miket akarsz ide küldeni, és a cél SMTP szerverek listája amúgy fix, így ha az office365_smtp transporta kerültél, akkor már biztosan akarsz tls-t és authentikációt is. Ergó mind a két változóba tehetsz *-ot.

https://www.exim.org/exim-html-current/doc/html/spec_html/ch-smtp_authentication.html
 

A javasolt minta szerintem tök jó:

client_condition = ${if !eq{$tls_out_cipher}{}}

További probléma, hogy szerintem nem jó a client_send formátuma:

https://www.exim.org/exim-html-current/doc/html/spec_html/ch-the_plaintext_authenticator.html

A kettőspontos a LOGIN típusúhoz jó, a PLAIN-hez ^ kell.

Hello. Köszönöm a segítséget, így most már kimennek a levelek, egy dologba belefutottam még, a sender name nek meg kell egyeznie az autentikációnál használt Office 365 fiók nevével. Azt kell még kitalálni, hogy felül lehet e bírálni valahogy, hogy a címzetteknek más néven jelenjen meg a feladó nál és az Exchange Online is elfogadja.

A módosított konfig, ha esetleg másnak is kell majd:

/etc/exim4/exim4.conf.template

begin authenticators

# Office365 login
office365_login:
  driver = plaintext
  public_name = LOGIN
  client_condition = ${if !eq{$tls_out_cipher}{}}
  client_send = :anya@csavar.onmicrosoft.com:fa312312dasdnla1EE

begin routers

# Office365 smarthost
office365_relay:
  driver = manualroute
  domains = ! +local_domains
  transport = office365_smtp
  route_list = * smtp.office365.com::587;
  host_find_failed = defer
  no_more

begin transports

# Office365 smtp
office365_smtp:
  driver = smtp
  port = 587
  hosts_require_auth = *
  hosts_require_tls = *

/etc/exim4/passwd.client

*.office365.com:anya@csavar.onmicrosoft.com:fa312312dasdnla1EE

Nem hiszem hogy segít, de nálam egy olyan email címet használok az autentikációhoz, amiről leveleket sosem, küldünk. Persze én nem a nagy m$ -el állok szemben.

* Én egy indián vagyok. Minden indián hazudik.