Yerel bir posta sunucusundan (hMailServer) e-posta göndermek için .NET'te SmtpClient
ve MailMessage
classes'u kullanarak, gönderilen iletinin Message-ID
başlık değerini almanın hiçbir yolunu bulamadım.SmtpClient ile gönderilen bir e-posta mesajının "Mesaj Kimliği" ni yakalamak mümkün mü?
programlı teslim edilemeyen mesajlar ulaşmaya çalışıyorum, bu yüzden belli bir mesaj reddeder hedef SMTP sunucusundan cevap tanımlamak için bir yol bulmak zorunda
arkasındaki fikir.
Şimdi sadece Message-ID
SMTP başlık değerini hatırlamayı ve bu kimlik için gelen e-postaları ayrıştırmayı düşündüm.
İletiyi gönderdikten sonra Headers
collection incelemeye çalıştım ancak Message-ID
bulamadım.
Sorum
benim SMTP sunucusu MailMessage
örneğinin gönderilmesi sırasında ekler Message-ID
başlık değeri elde etmek mümkün mü?
Güncelleme başarıyla elle sadece göndermeden önce, başıma bir Message-ID
oluşturmak için çalıştık this example gereğince 2012-05-27
.
Tüm örneklerim şu ana kadar çalışıyor, bu yüzden görünüyor ki bu benim soruna bir çözüm.
Kimlik, SMTP sunucusu tarafından atanmış olduğundan eminim ve SMTP protokolü, bu değeri istemciye döndürmeyi belirtmiyor. Bunun bir yolu, kontrol ettiğiniz bir hesaba aynı mesajı BCC'ye gönderir ve mesaj kimliğinin ilk SMTP sunucusunda bir kez üretildiğini varsayarak, bu mesajdaki mesaj kimliğini çıkarır. Başka bir olasılık e-postaya özel bir "X-tag" eklemektir. –
Teşekkürler, @JeremyHolovacs - Özel bir etiket eklemeyi denedim ("X-" öneki ile değil). Bu mesaj iletilirken veya iletilirken kaybolur. –
Ne yazık ki bunun için http://stackoverflow.com/questions/7095104/how-to-confirm-that-mail-has-been-delivered-ve- not kurşun geçirmez bir yöntem yoktur. –