[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: accuse de reception e-mail



OoO En cette  matinée ensoleillée du vendredi 01  juin 2007, vers 09:35,
mouss <mlist.only@free.fr> disait:

>> Cette solution ne fonctionnera  pas. Elle prendra effet uniquement quand
>> on fait répondre à l'auteur.

> non, ca marche meme avec un "repondre à tous" pourvu que le MUA
> respecte le Reply-To (qui est censé prendre le dessus sur le From).

Même  avec un  Thunderbird,  cela ne  fonctionne  pas. Reply-To  indique
seulement qu'il ne  faut pas répondre à l'auteur  en utilisant l'adresse
indiquée en  From, mais  qu'il faut utiliser  cette adresse.  En faisant
répondre à tous dans Thunderbird,  cela répond à l'adresse contenue dans
le Reply-To ainsi que les adresses contenues dans le champs Cc.

Pour  s'en  convaincre, suffit  d'aller  regarder  dans  les sources  de
Thunderbird.

Extraits de ./mozilla/mailnews/compose/src/nsMsgCompose.cpp

,----
|         if (type == nsIMsgCompType::ReplyAll)
|         {
|           mHeaders->ExtractHeader(HEADER_TO, PR_TRUE, getter_Copies(outCString));
|           if (outCString)
|           {
|             mMimeConverter->DecodeMimeHeader(outCString, recipient, charset);
|           }
| 
|           mHeaders->ExtractHeader(HEADER_CC, PR_TRUE, getter_Copies(outCString));
|           if (outCString)
|           {
|             mMimeConverter->DecodeMimeHeader(outCString, cc, charset);
|           }
| 
|           // preserve BCC for the reply-to-self case
|           mHeaders->ExtractHeader(HEADER_BCC, PR_TRUE, getter_Copies(outCString));
|           if (outCString)
|           {
|             mMimeConverter->DecodeMimeHeader(outCString, bcc, charset);
|             if (bcc.Length() > 0)
|               compFields->SetBcc(bcc);
|           }
| 
|           mHeaders->ExtractHeader(HEADER_MAIL_FOLLOWUP_TO, PR_TRUE, getter_Copies(outCString));
|           if (outCString)
|           {
|             mMimeConverter->DecodeMimeHeader(outCString, mailFollowupTo, charset);
|           }
| 
|           if (! mailFollowupTo.IsEmpty())
|           { // handle Mail-Followup-To (http://cr.yp.to/proto/replyto.html)
|             compFields->SetTo(mailFollowupTo);
|           }
|           else
|           { // default behaviour for messages without Mail-Followup-To
|             if (recipient.Length() > 0 && cc.Length() > 0)
|               recipient.AppendLiteral(", ");
|             recipient += cc;
|             compFields->SetCc(recipient);
|           }
| 
|           needToRemoveDup = PR_TRUE;
|         }
`----

Donc, si on répond à tous, il ne consulte même pas le champ Reply-To !

,----
|         if (! ((type == nsIMsgCompType::ReplyAll) && ! mailFollowupTo.IsEmpty()))
|         {
|           if (! mailReplyTo.IsEmpty())
|           { // handle Mail-Reply-To (http://cr.yp.to/proto/replyto.html)
|             compFields->SetTo(mailReplyTo);
|             needToRemoveDup = PR_TRUE;
|           }
|           else if (! replyTo.IsEmpty())
|           { // default behaviour for messages without Mail-Reply-To
|             compFields->SetTo(replyTo);
|             needToRemoveDup = PR_TRUE;
|           }
|         }
`----

Le seule endroit où il colle le champ reply-to, c'est quand on ne répond
pas à tous.
-- 
panic("kmem_cache_init(): Offsets are wrong - I've been messed with!");
	2.2.16 /usr/src/linux/mm/slab.c



Reply to: