O 503 AUTH command used when not advertised
essencialmente se explica, ele não ofereceu ao cliente a opção de usar o comando AUTH
. Isso é mais provável porque o cliente usou HELO
em vez de EHLO
(o que eu notaria que você usou quando fez o teste telnet).
A autenticação SMTP faz parte do SMTP estendido, que é iniciado com o comando EHLO
; SMTP "simples" não suportava autenticação e, portanto, é tecnicamente um comando ilegal, embora alguns servidores SMTP ainda possam permitir isso.
A melhor solução possível é dizer ao seu programa para usar o SMTP estendido ( EHLO
), se possível, caso contrário, pode haver um comando exim para forçá-lo a permitir AUTH em HELO
conexões de tipo.
** ATUALIZAÇÃO **
De acordo com este post aqui: link
EHLO (not HELO) must be given by client before AUTH.
That is, AUTH command could not be used unless advertised (through EHLO, according to auth_advertise, etc). This behavior was hardened in Exim 4.20 and is not an option.
Parece que você precisa de um MTA diferente se não conseguir que seu aplicativo faça EHLO
. Ou, você requer autenticação , você pode realizar a mesma coisa usando ACLs baseadas em IP?
SOLUÇÃO FINAL
O Exim tem uma solução para isso, usando allow_auth_unadvertised
conforme descrito aqui , você pode fazer algo assim:
hosts = *
control = allow_auth_unadvertised