Envoi mail avec header "Return-Receipt-To", pas d'accusé [Résolu]

Messages postés
18
Date d'inscription
mercredi 18 mai 2005
Dernière intervention
10 septembre 2007
- - Dernière réponse : yoyo041080
Messages postés
18
Date d'inscription
mercredi 18 mai 2005
Dernière intervention
10 septembre 2007
- 10 sept. 2007 à 09:38
Bonjour,

Je souhaite envoyer un mail et recevoir un accusé de réception (pas de lecture !). J'utilise donc le flag "Return-Receipt-To" que je mets dans le header du mail, comme ci dessous :

serveurSMTP = cbbServeurSMTP.Text

from = txtDe.Text

a = txtA.Text

cc = txtCC.Text

cci = txtCCi.Text

objet = txtObjet.Text

corps = txtCorps.Text
mail New MailMessage()mail.From

New MailAddress(from)mail.To.Add(a)

If cc <>
""
Thenmail.CC.Add(cc)

End
If

If cci <>
""
Thenmail.Bcc.Add(cci)

End
Ifmail.Subject = objet
mail.IsBodyHtml Falsemail.BodyEncoding System.Text.Encoding.UTF8

mail.Body = corps

 

' permet d'avoir une notification de réception
' je format mon e-mail sous la forme :  "XXX" [mailto:xxx@domaine.fr xxx@domaine.fr]
mail.Headers.Add(

"Return-Receipt-To",
String.Format(
"""{0}"" <{1}>", from.Substring(0, from.IndexOf(
"@")).ToUpper, from))

mail.Headers.Add(
"Errors-To", from)mail.Headers.Add(

"Return-Path", from)

 

Dim server
As
New SmtpClient(serveurSMTP)server.Send(mail)

mail.Dispose()
mail Nothingserver

NothingMessageBox.Show(

"Mail envoyé !")

Que je formate mon mail sous la forme "XXX" [mailto:XXX@domaine.fr XXX@domaine.fr], ou que j'écrive directement l'adresse de retour dans le header, je ne reçois jamais les accusés de réception... Le flag est pourtant bien présent dans le mail que j'envoie; si je l'ouvre avec wordpad, on peut y lire (j'ai effacé les IP et noms de serveurs) :

Received: from xxx by xxx with Microsoft SMTPSVC(6.0.3790.1830);

Fri, 7 Sep 2007 16:18:57 +0200

Received: from xxx with Microsoft SMTPSVC(6.0.3790.1830);

Fri, 7 Sep 2007 16:21:15 +0200

return-receipt-to: "xxx" <xxx@domaine.fr>

disposition-notification-to: xxx@domaine.fr

errors-to: xxx@domaine.fr

return-path: xxx@domaine.fr

mime-version: 1.0

from: xxx@domaine.fr

to: [mailto:destinataire@domaine.fr destinataire@domaine.fr]

cc: [mailto:destinataire@domaine.fr destinataire@domaine.fr]

date: 7 Sep 2007 16:21:15 +0200

subject: Test 2

Message-ID: <wwwwwww>

X-OriginalArrivalTime: 07 Sep 2007 14:21:15.0598 (UTC) FILETIME =[599A3EE0:01C7F15A]
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Dernière intervention
2 août 2014
3
Merci
Salut,

Tu es sur que le serveur n'est pas configuré pour ne pas les envoyer ?
Voir aussi si la propriété MailMessage.DeliveryNotificationOptions ne joue pas un rôle, même avec ajout manuel du header (d'ailleurs avec cette prorpiété tu pourrais peut être te passer de l'ajout si tu ne spécifie pas une adresse différente de celle de l'expéditeur, à vérifier).
Si tu spécifies une adresse différente, vérifier que ce scénario est supporté par le serveur.
Enfin, vérifier que tu ne te retrouves pas dans ce cas là : SMTPClient Not setting DeliveryNotificationOptions for each message sent

/*
coq
MVP Visual C#
CoqBlog
*/

Merci cs_coq 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_coq
Messages postés
18
Date d'inscription
mercredi 18 mai 2005
Dernière intervention
10 septembre 2007
3
Merci
Salut coq et merci pour tes éclaircissements

Dans l'ordre :

* je ne maitrise pas le paramètrage du serveur et ne sait donc pas si il est configuré pour ne pas les envoyer (mais c'est a priori ok, voir réponse suivante)
* MailMessage.DeliveryNotificationOptions : j'ai effectivement testé avant ta réponse cette option. Chose incompréhensible, ça n'a pas marché la première fois et ça a fonctionné ensuite ??? La seule chose dont je ne suis pas sûr, c'est de ne pas avoir mélangé l'ajout de header manuel et l'utilisation de cette option lors de mon premier essai.

= > Donc, ça semble fonctionner avec l'utilisation de MailMessage.DeliveryNotificationOptions seul sans les ajouts manuel "mail.Headers.Add"

* Pour ta dernière remarque, je ne suis pas dans ce cas (j'avais trouvé cet article), car j'envoie un seul mail

Merci

Pour info si quelqu'un d'autre à le souci, mon code final :

serveurSMTP = cbbServeurSMTP.Text

from = txtDe.Text

a = txtA.Text

cc = txtCC.Text

cci = txtCCi.Text

objet = txtObjet.Text

corps = txtCorps.Text
mail New MailMessage()mail.From

New MailAddress(from)mail.To.Add(a)

If cc <>
""
Thenmail.CC.Add(cc)

End
If

If cci <>
""
Thenmail.Bcc.Add(cci)

End
Ifmail.Subject = objet
mail.IsBodyHtml Falsemail.BodyEncoding System.Text.Encoding.UTF8

mail.Body = corps

mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess Or DeliveryNotificationOptions.Delay Or DeliveryNotificationOptions.OnFailure

Dim server
As
New SmtpClient(serveurSMTP)server.Send(mail)

mail.Dispose()
mail Nothingserver

NothingMessageBox.Show(

"Mail envoyé !")

Merci yoyo041080 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de yoyo041080
Messages postés
18
Date d'inscription
mercredi 18 mai 2005
Dernière intervention
10 septembre 2007
0
Merci
Quelqu'un a-t-il une idée d'où pourrait venir cette non réception d'accusé ?

Merci

yoyo
Commenter la réponse de yoyo041080

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.