Похоже, что .NET SmtpClient создает электронные письма с дополнительной точкой в именах хостов, если точка должна была появиться в начале строки, закодированной в MIME (например, test.com иногда отображается как test..com).Пример кода:
[TestMethod]
public void TestEmailIssue()
{
var mail = new System.Net.Mail.MailMessage();
var smtpClient = new System.Net.Mail.SmtpClient();
mail.To.Add("Test@test.com");
mail.Subject = "Test";
mail.From = new System.Net.Mail.MailAddress("test@test.com");
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);
}
Это создает файл .eml, который выглядит следующим образом:
X-Sender: test@test.com
X-Receiver: Test@test.com
MIME-версия: 1.0
От: test@test.com
Кому: Test@test.com
Дата: 6 июля 2011 г. 15:55:28 -0400
Тема: Тест
Тип содержимого: текст / обычный текст;charset = us-ascii
Content-Transfer-Encoding: quoted-printable
Здравствуйте, это краткий тест проблемы: https://test=
.. com / '> https://test.com/:=20
При отправке файла или открытии в Outlook (или любой другой программе) отображаются двойные точки (т. Е. Test..com).Обратите внимание, что если я удаляю лишний пробел (в "is a"), этот test.com отображается правильно, так как точка больше не появляется в начале строки.
Это вызывает проблему при попытке отправить веб-сайтадреса, и мы получаем звонки от клиентов, которые говорят, что они не могут нажимать на наши ссылки.
Кто-нибудь еще испытывал это?Как мы можем решить эту проблему, кроме написания нашей собственной кодировки?