Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 1.0/1.1
Recapito email
lunedì 07 maggio 2007 - 12.24
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
squilibrium
Profilo
| Junior Member
168
messaggi | Data Invio:
lun 7 mag 2007 - 12:24
Ciao a tutti
Sto inviando un email con c# framework 1.1, e avrei bisogno di richiedere la conferma di recapito della email
ho gia aggiunto la richiesta di conferma lettura aggiungendo all'header il
Disposition-notification-to e infatti quando danno conferma di lettura la ricevo.
Ma io avrei bisogno di sapere se l'email è stata recapitata (NON LETTA) al server di posta del destinatario.
Qualcuno ha qualche idea
Grazie
Ciao
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
lun 7 mag 2007 - 14:54
>Ma io avrei bisogno di sapere se l'email è stata recapitata (NON
>LETTA) al server di posta del destinatario.
Non credo che la classe Web.Mail di .NET 1.1 consenta questo.
La versione 2.0 di .NET con la classe MailMessage del nuovo namespace System.Net.Mail ti fornisce lo stato della spedizione tramite la proprietà DeliveryNotificationOptions.
Infatti nella documentazione c'è scritto "supported .net 2.0 e 3.0.".
Ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
squilibrium
Profilo
| Junior Member
168
messaggi | Data Invio:
lun 7 mag 2007 - 15:11
Infatti con il framework 1.1 bisogna aggiungere all'header della email la richiesta:
EX:
objMail.Headers.Add("Disposition-notification-to","indirizzoemail@provider.it");
Dovrebbe esistere un altro attributo, diverso da Disposition-notification-to,
da aggiungere nella stessa maniera
Ho provato con "Return-Receipt-To" ma non sto ottenendo grandi risultati
Ciao
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mar 8 mag 2007 - 09:48
>objMail.Headers.Add("Disposition-notification-to","indirizzoemail@provider.it");
Guarda che mi sa che sono due cose diverse.
Quella che stai dicendo tu mi pare corrisponda alla richiesta di lettura (Read Receipt).
Mentre quella che dico io è che quando chiami il metodo Send() dell'SmtpClient ti dice se la mail è stata depositata corrrettamente nella casella del destinatario (e quindi esiste) oppure la consegna è fallita. E' uno stato che viene segnalato immediatamente e non a posteriori come la notifica di lettura di cui sopra.
Ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
squilibrium
Profilo
| Junior Member
168
messaggi | Data Invio:
mar 8 mag 2007 - 09:55
disposition-notification-to è infatti la richiesta di avvenuta lettura
return-receipt-to invece dovrebbe dirmi che l'email è stata recapitata al server del destinatario (che è più o meno cio che mi serve)
A volte ritorna effettivamente una email di avvenuto recapito, ma a volte no e
non riesco a capire se si tratta di un impostazione del server di posta del destinatario o del client del destinatario o se addirittura dipende dalle impostazioni del profilo del MITTENTE (siamo in ambiente LOTUS)
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mar 8 mag 2007 - 10:04
>disposition-notification-to è infatti la richiesta di avvenuta
>lettura
>return-receipt-to invece dovrebbe dirmi che l'email è stata recapitata
>al server del destinatario (che è più o meno cio che mi serve)
Mi sono documentato, il primo fa parte dello standard RFC. Mentre il secondo non è standardizzato quindi se un mail server non aderisce agli standard ignora semplicemente il return-receipt-to. Inoltre Lotus tratta i due headers in modo ancora diverso, cerca documentazione su ibm.com e troverai vari documenti che parlano appunto di questi due headers in Domino, Lotus, ecc.
Ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
squilibrium
Profilo
| Junior Member
168
messaggi | Data Invio:
mar 8 mag 2007 - 10:20
Infatti è proprio così. Non posso avere la certezza che m i torni una ricevuta di ritorno.
Grazie
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mar 8 mag 2007 - 10:23
>Infatti è proprio così. Non posso avere la certezza che m i torni
>una ricevuta di ritorno.
Comunque visto che anche con la ricevuta di ritorno sarebbe complesso perchè poi devi intercettarla andare a leggere cosa c'è scritto ecc. magari se è un componente che si può portare fuori da una applicazione complessa ti conviene scriverlo con il 2.0 così almeno dopo aver chiamato il metodo Send() sai già se la mail è stata depositata o meno.
Il resto della applicazione la mantieni con il 1.1
Ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
squilibrium
Profilo
| Junior Member
168
messaggi | Data Invio:
mar 8 mag 2007 - 10:26
Potrei anche....
credo però che il metodo send del 2.0, non faccia altro che aggiungere un header alla e-mail, forse proprio il return-receipt-to
come ho tempo faccio un pò di prove
grazie
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mar 8 mag 2007 - 10:32
>Potrei anche....
>credo però che il metodo send del 2.0, non faccia altro che aggiungere
>un header alla e-mail, forse proprio il return-receipt-to
>come ho tempo faccio un pò di prove
Non credo proprio. Secondo logica la proprietà DeliveryOptions dovrebbe essere valorizzata istantaneamente dopo che il componente SMTP invia all'SMTP Server il comando RCPT TO: il server risponde subito con un valore in base al quale la consegna è stata o non è stata fatta oppure è stata posticipata (delayed).
Non penso proprio ci sia aggiunta di headers perchè lo stato è disponibile subito dopo il Send(). Il Return-receipt invece è in differita come ho detto poco fa.
Ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
squilibrium
Profilo
| Junior Member
168
messaggi | Data Invio:
mar 8 mag 2007 - 11:47
C'è qualcosa che mi sfugge.
Da quello che ho capito quando metto un header nel messaggio email, questo viene utilizzato dal server che RICEVE per inviare al mittente un messaggio di conferma (qualora il server ricevente fornisca tale possibilità)
Quando invece utilizzo il DeliveryNotificationOptions, ho appena letto che è il server SMTP del MITTENTE che invia notifica allo stesso dell'avvenuta consegna.
Ma come fa in quest'ultimo caso, il Servere del mittente a sapere che il messaggio è stato consegnato? Non dovrebbe ugualmente ricevere una conferma dal server destinatario?
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mar 8 mag 2007 - 12:48
>C'è qualcosa che mi sfugge.
My fault. Ho guardato la documentazione, e non funziona così logicamente come avevo pensato.
>Da quello che ho capito quando metto un header nel messaggio
>email, questo viene utilizzato dal server che RICEVE per inviare
>al mittente un messaggio di conferma (qualora il server ricevente
>fornisca tale possibilità)
>Quando invece utilizzo il DeliveryNotificationOptions, ho appena
>letto che è il server SMTP del MITTENTE che invia notifica allo
>stesso dell'avvenuta consegna.
Esatto funziona così.
>Ma come fa in quest'ultimo caso, il Servere del mittente a sapere
>che il messaggio è stato consegnato? Non dovrebbe ugualmente
>ricevere una conferma dal server destinatario?
Te lo spiego, l'ho anticipato poco prima. Tu spedisci una mail al tuo SMTP Server che si occupa di spedire la tua mail al destinatario. Contatta quindi l'SMTP del destinatario e quando lancia il comando RCPT TO :<indirizzo@dominio.com> il server SMTP remoto se risponde con un OK significa che il destinatario esiste, la procedura quindi va avanti, il tuo SMTP invia anche il corpo del messaggio, alla fine se non ci sono errori, il messaggio a quel punto è stato spedito e consegnato.
In base ai messaggi di ritorno dal SMTP destinatario il tuo SMTP sa se l'ha consegnata o meno e a quel punto ti rimanda indietro una notifica dell'avvenuta consegna.
Io invece pensavo che questo stato venisse già reso disponibile nell'istanze del MailMessage in modo che uno sapeva subito se era stata consegnata o meno senza dover andare a leggere la notifica.
Ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !