System.Net.Mail criando emails e arquivos eml inválidos? Inserir pontos extras nos nomes de host
Parece que o SmtpClient do .NET está criando e-mails com um ponto extra nos nomes de host se o ponto aparecer no início de uma linha codificada MIME (por exemplo, test.com às vezes aparece como test..com). Código de exemplo:
[TestMethod]
public void TestEmailIssue()
{
var mail = new System.Net.Mail.MailMessage();
var smtpClient = new System.Net.Mail.SmtpClient();
mail.To.Add("[email protected]");
mail.Subject = "Test";
mail.From = new System.Net.Mail.MailAddress("[email protected]");
mail.Body = "Hello this is a short test of the issue:"
+" <a href='https://test.com/'>https://test.com/</a>: ";
smtpClient.PickupDirectoryLocation = "C:\\temp\\";
smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.SpecifiedPickupDirectory;
smtpClient.Send(mail);
}
Isso cria um arquivo .eml parecido com este:
X-Sender: test @ test.com
Receptor X: Teste @ test.com
Versão MIME: 1.0
De: test @ test.com
Para: Test @ test.com
Data: 6 de julho de 2011 15:55:28 -0400
Subject: Test
Tipo de Conteúdo: texto / simples; charset = us-ascii
Codificação de transferência de conteúdo: quoted-printable
Olá, este é um pequeno teste do problema: https: // test =
.. com / '>https: //test.com: = 20
Ao enviar o arquivo ou abrir no Outlook (ou em qualquer outro programa), os pontos duplos são exibidos (ou seja, test..com). Observe que, se eu remover o espaço extra (em "é um"), esse test.com será exibido corretamente, pois o ponto não aparecerá mais no início da linh
Isso causa um problema ao tentar enviar endereços de sites, e recebemos chamadas de clientes dizendo que eles não podem clicar em nossos links.
Alguém mais experimentou isso? Como podemos resolver esse problema além de escrever nossa própria codificação?