Utilizzando lo SmtpClient
e MailMessage
classes in .NET per inviare e-mail tramite un server di posta locale (hMailServer), non ho trovato attualmente alcun modo per ottenere il valore di intestazione Message-ID
di un messaggio inviato.È possibile acquisire il "Message-ID" di un messaggio di posta elettronica inviato con SmtpClient?
L'idea alla base
Sto cercando di rintracciare programmazione messaggi che sono non recapitata, quindi devo trovare un modo per identificare risposte dal server SMTP di destinazione che rifiuta un certo messaggio.
Ora ho pensato di ricordare semplicemente il valore dell'intestazione SMTP Message-ID
e analizzare i messaggi in arrivo per questo ID.
Ho provato a ispezionare il Headers
collection dopo aver inviato il messaggio, ma non ho trovato alcun Message-ID
.
La mia domanda
E 'possibile ottenere il valore Message-ID
intestazione che il mio server SMTP aggiunge durante l'invio di un'istanza MailMessage
?
Aggiornamento 2012-05-27
Come da this example Ho provato con successo per generare manualmente un Message-ID
per conto mio, proprio prima di inviare.
Tutti i miei esempi funzionano fino ad ora, quindi è che questa è una soluzione alla mia domanda.
Sono abbastanza sicuro che l'ID sia assegnato dal server SMTP e il protocollo SMTP non specifica la restituzione del valore al client. Un modo per aggirare questo sarebbe BCC lo stesso messaggio per un account che controlli ed estrarre l'id del messaggio da quel messaggio ... assumendo che l'id del messaggio sia generato una volta, nel server SMTP iniziale. Un'altra possibilità è aggiungere un "X-tag" personalizzato all'e-mail. –
Grazie, @JeremyHolovacs - Ho già provato ad aggiungere un tag personalizzato (non con il prefisso "X-", tuttavia) sembra che questo tag sia stato perso durante l'inoltro o la risposta al messaggio. –
Sfortunatamente per http://stackoverflow.com/questions/7095104/how-to-confirm-that-mail-has-been-delivered-or-not non esiste un metodo antiproiettile per questo. –