Надеясь, что кто-то сможет помочь с этим, я оглядывался, и я не могу найти ответ нигде..NET 4.5 SMTP Client Dot Stuffing Issue при доставке в каталог рассылки
Я создаю почтовое сообщение, которое будет доставлено в указанную директорию пикапа, этот код использовался многократно в прошлом без проблем. Теперь, когда я проверяю полученный файл и, более конкретно, URL-адрес в файле eml, я вижу, что в середине есть двойной .
. Из того, что я читал, я понимаю, что это часть протокола SMTP для точечного материала, если первый символ строки в сообщении начинается с .
. Этот файл позже будет подхвачен другой службой, которая в конечном итоге выполнит отправку электронной почты.
Я смог сузить его до точной линии, когда я звоню client.Send()
. Если я проверяю тело сообщения перед отправкой, URL-адрес будет правильно сформирован. Проверяя тело сообщения после того, как я его вызвал, в URL присутствует ..
.
Мой вопрос или вопросы, я полагаю, являются следующие:
- Кто-нибудь еще сталкивался вопрос с точки фарша при использовании
SmtpDeliveryMethod.SpecifiedPickupDirectory
? - Чья это задача, чтобы правильно справиться с этим? .NET SMTP или вторичная служба, которая выбирает это сообщение позже и отправляет его в конечный пункт назначения?
- Любые советы о том, как разрешить это?
Я ранее пробовал approach described here, но он терпел неудачу с многочисленными исключениями.
Я в основном ищу способ сохранить этот файл eml в месте на диске, которое впоследствии можно будет отбросить и отправить, мои знания на C# все еще довольно ограничены, поэтому может быть что-то простое, я просто закончил так что любые советы или рекомендации были бы чрезвычайно оценены!
Я создал небольшой образец кода, чтобы попытаться воссоздать проблему, это не точный контент, который я использую, но он показывает, что после отправки через метод client.Send() есть 2 '..' в начале строки.
using (var client = new SmtpClient())
{
client.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;
client.PickupDirectoryLocation = @"C:\temp";
var message = new MailMessage();
message.To.Add(new MailAddress("[email protected]"));
message.From = new MailAddress("[email protected]");
message.Subject = "Smtp Dot Stuffing Test";
message.Body = ".A.B.C..... .0.1.2.3.4.5.6.7.8.9";
client.Send(message);
}
Можете ли вы показать нам соответствующий код? – Dawnkeeper
@Dawnkeeper Я только что добавил небольшую часть кода примера, чтобы продемонстрировать проблему. –