O365 – Mensagem de erro “501 Syntax Error: Empty email address” ao enviar mensagens para grupos de distribuição

 

Por: Caio Ribeiro César

 

Alguns cenários de suporte são facilmente reproduzidos em laboratórios internos.

 

Alguns dos passos de troubleshooting em suporte (não somente em Exchange) é ter certeza se o problema pode ou não ser reproduzido - para assim anular algumas etapas de comunicação com o usuário final ou administrador.

 

Então ao receber uma chamada em que emails enviados para um grupo de distribuição estavam com o erro abaixo no message trace, tentamos entender o motivo para ver se existia a possibilidade de reproduzir em nossos ambientes de laboratório:

 

Reason: [{LRT=12/2/2015 8:37:12 PM};{LED=501 Syntax error: Empty email address.};{FQDN=mail. c4iocesar .com};{IP=x.x.x.x}]. OutboundProxyTargetIP: x.x.x.x. OutboundProxyTargetHostName: mail. c4iocesar.com

RcptCount : 49 

ConnectorId : To_DefaultOpportunisticTLS 

ServerHostName : mail.c4iocesar.com

DeliveryPriority : Normal 

TotalLatency : 77 

OutboundProxyTargetIPAddress : x.x.x.x

OutboundProxyTargetHostName : mail.c4iocesar.com

ReturnPath : <>  

ClientName : BY1PR08MB2000

CustomData : S:ExternalSendLatency=10.018;'S:Microsoft.Exchange.Hygiene.TenantOutboundConnectorCustomData=Name=Conector;ConnectorType=OnPremises;UseMxRecord=False';S:OutboundProxyFrontEndName=BN1AFFO11CB011;S:IsSmtpResponseFromExternalServer=True;S:Oorg=py.cl;S:OriginalFromAddress=caioc@c4iocesar.com 

SequenceNumber : 0 

RecipientStatus : [{LRT=12/2/2015 8:37:12 PM};{LED=501 Syntax error: Empty email address.};{FQDN=mail. c4iocesar.com};{IP=x.x.x.x}]

 

Emails de caioc@c4iocesar.com (enviados de uma conta POP de um domínio internal relay) são entregues sem problema para recipients do tenant O365.

 

Porém, quando a mesma conta envia para grupos de distribuição a mensagem não é entregue (com o erro detalhado no trace acima) e nenhum NDR é enviado para o sender.

 

Podemos entender que aparentemente, a mensagem está sendo enviado sem um email address de return-path.

 

O que seria o return-path? Revisando o RFC2821, temos as seguintes notas:

 

“When the delivery SMTP server makes the final delivery of a message, it inserts a return-path line at the beginning of the mail data. This use of return-path is required; mail systems MUST support

it.”

“The primary purpose of the return-path is to designate the address to which messages indicating non-delivery or other mail system failures are to be sent.”

 

Ou seja, seria a mesma coisa que enviar:

 

Server: 220 smtp.contoso.com ESMTP Postfix

Client: HELLO relay.example.org

Server: 250 Hello relay.example.org, I am glad to meet you

Client: MAIL FROM: <>

Server: 250 Ok

Client: RCPT TO: username@example.com

 

Além de ser utilizado para o envio de NDR (conforme explicado no RFC de SMTP), a maioria dos serviços de anti-spam rejeitam mensagens que são enviadas sem um return-path para prevenir spoof de mensagens.

 

Se estas mensagens não especificam um return-path válido, o Exchange Online Protection irá rejeitar a entrega destas mensagens para o usuário final.

 

Seguindo o artigo externo da Microsoft, podemos customizar o return-path de grupos de distribuição no O365.

 

Basta utilizar o comando Set-DistributionGroup com as opções ReportToManagerEnabled ou ReportToOriginatorEnabled configuradas como $true.

 

A primeira, irá configurar o return-path com o endereço de email que está populado no objeto adicionado como “ManagedBy” do grupo de distribuição em questão.

 

A segunda, irá configurar o endereço de return-path com o endereço de email do sender.

 

ReportToManagerEnabled

The ReportToManagerEnabled parameter specifies whether delivery status notifications (also known as DSNs, non-delivery reports, NDRs, or bounce messages) are sent to the owners of the group (defined by the ManagedBy property). Valid values are:

· $true Delivery status notifications are sent to the owners of the group.

· $false Delivery status notifications aren't sent to the owners of the group. This is the default value.

ReportToOriginatorEnabled

The ReportToOriginatorEnabled parameter specifies whether delivery status notifications (also known as DSNs, non-delivery reports, NDRs, or bounce messages) are sent to senders who send messages to this group. Valid values are:

· $true Delivery status notifications are sent to the message senders. This is the default value.

· $false Delivery status notifications aren't sent to the message senders.

 

O que se entende do ambiente é que o valor de ReportToOriginatorEnabledpara este grupo de distribuição estava fora do padrão (possivelmente alterado).

 

Caso ambos os valores sejam configurados como $false, podemos reproduzir em laboratório este comportamento. Para resolver o problema, deixamos a propriedade configurada como default:

 

Set-DistributionGroup -Id GRUPO -ReportToOriginatorEnabled $true

 

Assim que testamos com sucesso, forçamos esta mesma configuração para todos os grupos existentes:

 

Get-DistributionGroup | Set-DistributionGroup -ReportToOriginatorEnabled $true