Inviare email con ricevuta di consegna - MailMessage - Return-Receipt-To
theproject non è online. Ultima attività: 03/08/2008 9.37.09theproject
Inserito il: 11 aprile 2008 10.14
57 messaggi dal 16 nov 2001 Istalla Microsoft Silverlight!
Vorrei inviare una mail con asp.net v.1.1 e avere la ricevuta di avvenuta consegna da parte del server. L'intestazione HEADER da aggiungere dovrebbe essere "Return-Receipt-To".
Se la invio con il mio client di posta Outlook v.11 la ricevuta arriva correttamente, se creo la mail runtime (vedi script di sotto) arriva la mail ma non la ricevuta. Confrontando le HEADER tra quella inviata da Outlook e quella inviata da CDO sono pressapoco identiche. Inoltre aprendo la mail inviata da CDO con outlook 11 in opzioni vedo correttamente settata la scelta "richiedi conferma di recapito per il messaggio". Sono disperato non capisco perchè!!!

Curiosità: "Disposition-notification-to" cioè la ricevuta di apertura messaggio funziona correttamente!


<%@Page Language="VB" %>
<%@Import Namespace="System.Web.Mail" %>

<%
Dim mail As New MailMessage

mail.Headers.Add("Return-Receipt-To", "from@mail.com")
mail.Headers.Add("X-Mailer", "Microsoft Office Outlook 11")
mail.Headers.Add("X-MimeOLE", "Produced By Microsoft MimeOLE V6.00.2900.3198")
mail.To = "to@mail.com"
mail.From = "from@mail.com"
mail.Subject = "1"
mail.BodyFormat = MailFormat.Text

mail.Body = "2"

SmtpMail.Send(mail)
%>

Microsoft Most Valuable Professional
Re: Inviare email con ricevuta di consegna - MailMessage - Return-Receipt-To
Daniele Bochicchio non è online. Ultima attività: 05/09/2008 15.43.27Daniele Bochicchio
Inserito il: 21 aprile 2008 08.55
contributi / Top Poster / Community manager / daniele.aspitalia.com / Blog / 9629 messaggi dal 31 ago 1998 Istalla Microsoft Silverlight!
theproject wrote:
Sono disperato non capisco perchè!!!

perchè il server SMTP che usi, che è probabilmente quello di IIS, che non rispetta questa header.

Daniele Bochicchio

ASP.NET
.NET Framework
LINQ
Silverlight
Re: Inviare email con ricevuta di consegna - MailMessage - Return-Receipt-To
theproject non è online. Ultima attività: 03/08/2008 9.37.09theproject
Inserito il: 22 aprile 2008 13.57
57 messaggi dal 16 nov 2001 Istalla Microsoft Silverlight!
Ciao Daniele, io ho una connessione tiscali e utilizzo come server smtp (smtp.tiscali.it) settandolo così:

SmtpMail.SmtpServer = "smtp.tiscali.it"

Ho caricato anche il compilato su un mio server che usa eutelia non specificando il server ma è la stessa solfa.
Ho provato anche a installare un server smtp in locale ma non funziona.

SmtpMail.SmtpServer = "127.0.0.1"

Cioè in tutti e tre i casi la mail parte ma non arriva la ricevuta del server remoto.

Viceversa se con MSOutlook creo una mail con ricevuta di consegna utilizzando il server di tiscali tutto arriva senza problemi.

Se vado a controllare una mail mandata da CDO aprendola con MSoutlook la flag "richiedi conferma di recapito del messaggio" è correttamente settata.

E' strano!

Microsoft Most Valuable Professional
Re: Inviare email con ricevuta di consegna - MailMessage - Return-Receipt-To
Daniele Bochicchio non è online. Ultima attività: 05/09/2008 15.43.27Daniele Bochicchio
Inserito il: 22 aprile 2008 17.52
contributi / Top Poster / Community manager / daniele.aspitalia.com / Blog / 9629 messaggi dal 31 ago 1998 Istalla Microsoft Silverlight!
theproject wrote:
Cioè in tutti e tre i casi la mail parte ma non arriva la ricevuta del server remoto.

Viceversa se con MSOutlook creo una mail con ricevuta di consegna utilizzando il server di tiscali tutto arriva senza problemi.

può essere che in qualche modo l'header venga rimossa in fase di invio. dovresti mettere in mezzo uno sniffer/proxy e controllare cosa viene mandato.

Daniele Bochicchio

ASP.NET
.NET Framework
LINQ
Silverlight
Re: Inviare email con ricevuta di consegna - MailMessage - Return-Receipt-To
theproject non è online. Ultima attività: 03/08/2008 9.37.09theproject
Inserito il: 23 aprile 2008 10.10
57 messaggi dal 16 nov 2001 Istalla Microsoft Silverlight!
Per testarlo in locale con un server smtp ho usato http://www.postcastserver.com/. Prima di inviare il messaggio tramite la tua connessione puoi così visualizzarlo e l'Header è corretamente settato, quindi asp.net effettivamente genera il messaggio con tutti i crismi.

Il messaggio poi parte correttamente e viene consegnato nella casella di posta destinataria. Aprendo questo messaggio con Outlook noto che la flag è correttamente settata anche se la ricevuta effettiva da parte del server remoto non viene inviata. Ho provato con più di un account ma nulla da fare.

Viceversa se creo una mail apparentemente identica con il client di posta e la invio sempre a localhost con la stessa procedura di sopra..la ricevuta arriva.

Se confrondo le HEADER (tra quella generata da ASP.net e quella generata da MsOutlook) a livello di client smtp, quindi dopo la generazione e prima dell'invio al server remoto, non ci sono significative differenze a parte i campi X-Mailer: X-MimeOLE: Message-ID: (i primi due possono comunque essere personalizzati runtime)

Mi ripeto ma se setto Disposition-Notification-To (la notifica di lettura) viene chiesta.

Ho notato che Return-Receipt-To è deprecato e per qualche arcano motivo viene scritto nell'header ma poi effetivamente ignorato, anche se è un parametro intelligente per capire se effettivamente il server consegna la mail.

Modificato da theproject il 23 aprile 2008 10.16 -

Microsoft Most Valuable Professional
Re: Inviare email con ricevuta di consegna - MailMessage - Return-Receipt-To
Daniele Bochicchio non è online. Ultima attività: 05/09/2008 15.43.27Daniele Bochicchio
Inserito il: 23 aprile 2008 11.59
contributi / Top Poster / Community manager / daniele.aspitalia.com / Blog / 9629 messaggi dal 31 ago 1998 Istalla Microsoft Silverlight!
theproject wrote:
Ho notato che Return-Receipt-To è deprecato e per qualche arcano motivo viene scritto nell'header ma poi effetivamente ignorato, anche se è un parametro intelligente per capire se effettivamente il server consegna la mail.

qualcosa nel messaggio non piace, probabilmente. non saprei che dirti, se non che non è un metodo affidabile per sapere se il messaggio è stato consegnato, quando se è partito dal server. ad ogni modo, cosa vuoi fare di preciso con questo sistema? magari c'è una strada alternativa.

Daniele Bochicchio

ASP.NET
.NET Framework
LINQ
Silverlight
Re: Inviare email con ricevuta di consegna - MailMessage - Return-Receipt-To
theproject non è online. Ultima attività: 03/08/2008 9.37.09theproject
Inserito il: 23 aprile 2008 14.21
57 messaggi dal 16 nov 2001 Istalla Microsoft Silverlight!
Il server che mi hosta il sito web dovrebbe inviare, al cliente che si registra, la mail con le chiavi di accesso.
Mi è capitato in passato che, per vari motivi, il server smtp non spedisca effettivamente tutte le mail e volevo accertarmi

1 - che il messaggio andasse a buon fine (email imputata dal cliente sbagliata anche se ha superato il controllo formale-in caso negativo posso contattare il cliente telefonicamente)

2 - che il server smtp spedisca effettivamente la mail

Per tamponare setto un CopiaCarbone a me e risolvo il punto 2.

Per il punto 1 potrei chiedere la notifica di lettura (che tra l'altro funziona!) ma non tutti i client di posta sono abilitati e quelli abilitati possono ignorarla (l'utente indica "non visualizzare più questo messaggio in futuro" scegliendo di non mandarla)

L'unica soluzione credo sia quella di implementare un mio client smtp (devo trovare una classe in vb) e creare un log di invio...ma è un po laborioso. Non vedo altre alternative.

Microsoft Most Valuable Professional
Re: Inviare email con ricevuta di consegna - MailMessage - Return-Receipt-To
Daniele Bochicchio non è online. Ultima attività: 05/09/2008 15.43.27Daniele Bochicchio
Inserito il: 23 aprile 2008 14.55
contributi / Top Poster / Community manager / daniele.aspitalia.com / Blog / 9629 messaggi dal 31 ago 1998 Istalla Microsoft Silverlight!
theproject wrote:
L'unica soluzione credo sia quella di implementare un mio client smtp (devo trovare una classe in v e creare un log di invio...ma è un po laborioso. Non vedo altre alternative.

il server SMTP di IIS ha questa funzionalità, cioè di inviare un messaggio sullo stato del recapito, quando non avviene, ad un indirizzo che specifichi. è tra le opzioni, se lo fai ti arriva una copia di tutte le mail che non arrivano, ma questo in realtà è valido per qualsiasi server ed arriva ovviamente al mittente, cosa che immagino nel tuo caso non vada bene perchè magari è l'e-mail di un tuo cliente e non la tua quella che appare come mittente.

Daniele Bochicchio

ASP.NET
.NET Framework
LINQ
Silverlight


Pagine: [1] 2 Avanti >>
Vai a:
Torna al forum |   Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.


maltra - 701 pt
vladimiro - 471 pt
fabrica - 180 pt

Ultimi vincitori: fabrica, vladimiro, PeppeDotNet

Iscriviti anche tu e raccogli punti. Questo mese in palio VS 2008 + Windows Server 2008, ReShaper e 1 ebook!



COMMUNITY
ULTIMI MESSAGGI


IN EVIDENZA
MISC
Powered by .db Forums