Você precisa de um smarthost_auth router (você pode invocar qualquer nome para isso), na seção routers (ou seja, o que começa com begin routers ); A ordem é importante e vendo como todos os e-mails devem ser enviados para o servidor O365, coloque-os no topo dos roteadores:
smarthost_auth:
debug_print = "R: smarthost for $local_part@$domain"
driver = manualroute
domains = ! +local_domains
transport = smtp_smarthost_auth
route_list = * o365server.example.com byname
host_find_failed = defer
same_domain_copy_routing = yes
no_more
Você pode substituir a linha domains por domains = * se todos os emails tiverem que ir para o servidor do O365; coloque o nome do host correto para esse servidor na linha route_list .
Então você precisa deste transporte (novamente eu escolhi o nome, mude-o se você quiser); coloque isso na seção que começa com begin transports , a ordem não é importante:
smtp_smarthost_auth:
debug_print = "T: remote_smtp_smarthost for $local_part@$domain"
driver = smtp
hosts_require_auth = *
Finalmente, você precisa de um autenticador apropriado, após a linha begin authenticators . Presumivelmente, a configuração que você já tem tem uma estrofe cram_md5 , plain e login . Por exemplo. algo assim:
cram_md5:
driver = cram_md5
public_name = CRAM-MD5
client_name = MyName
client_secret = MySecret
fixed_plain:
driver = plaintext
public_name = PLAIN
client_send = ^MyName^MySecret
fixed_login:
driver = plaintext
public_name = LOGIN
client_send = : MyName : MySecret
É claro que substitua o MyName e MySecret .