Korzystanie z iw .NET do wysyłania wiadomości e-mail za pośrednictwem lokalnego serwera poczty (hMailServer), obecnie nie znalazłem sposobu, aby uzyskać wartość nagłówka wysłanej wiadomości.Czy można przechwycić "Message-ID" wiadomości e-mail wysłanej za pomocą SmtpClient?
Ideą
Próbuję programowo śledzić wiadomości, które są niemożliwe do dostarczenia, więc muszę znaleźć sposób, aby zidentyfikować odpowiedzi z serwera SMTP docelowego, który odrzuca pewną wiadomość.
Teraz pomyślałem o zapamiętaniu wartości nagłówka SMTP o wartości Message-ID
i przeanalizowaniu przychodzących wiadomości e-mail dla tego identyfikatora.
Próbowałem sprawdzić Headers
collection po wysłaniu wiadomości, ale nie znalazłem żadnego Message-ID
.
Moje pytanie
Czy to możliwe, aby uzyskać wartość Message-ID
nagłówka że mój serwer SMTP dodaje podczas wysyłania instancji MailMessage
?
Aktualizacja 2012-05-27
Zgodnie this example Mam powodzeniem próbuje ręcznie wygenerować Message-ID
na własną rękę, tuż przed wysłaniem.
Wszystkie moje przykłady działają do tej pory, więc wydaje się, że jest to rozwiązanie mojego pytania.
Jestem prawie pewien, że identyfikator jest przypisany przez serwer SMTP, a protokół SMTP nie określa zwracania tej wartości z powrotem do klienta. Sposób obejścia tego będzie dla BCC tą samą wiadomością na konto, które kontrolujesz, i wyodrębnij identyfikator wiadomości z tego komunikatu ... zakładając, że identyfikator komunikatu jest generowany raz, na początkowym serwerze SMTP. Inną możliwością jest dodanie niestandardowego "tagu X" do wiadomości e-mail. –
Dzięki, @JeremyHolovacs - Próbowałem już dodać niestandardowy znacznik (nie z prefiksem "X-"), wydaje się, że ten znacznik został utracony podczas przekazywania wiadomości lub odpowiadania na nią. –
Niestety za http://stackoverflow.com/questions/7095104/how-to-confirm-that-mail-has-been-delivered-or-not nie ma na to metody kuloodpornej. –