Forums : Extensions

Aller à la discussion :  Plus récente Plus ancienne

# [Résolu] accès au nom de l'émetteur d'un email

Envoyé par : lezioul

Date : 10/12/2007 16:33

Bonjour,

Tout d'abord, sachez que je débute dans le monde des extensions.

mon extension se rajoute au menu contextuel lorsqu'on clic sur une adresse email.

pour obtenir le "displayName" d'une adresse email, j'utilise la méthode suivante :

var name=emailNode.getAttribute("displayName");

cependant, j'ai un soucis avec les adresses de ce type "NOM, prenom<prenom.nom@mondomaine.fr>" car thunderbird les interprète comme 2 adresses : "NOM<>" et "prenom<prenom.nom@mondomaine.fr>"

Comme j'ai besoin du nom complet de l'utilisateur, j'aimerais passer par les headers du mail, mais je ne sais pas quel composant utiliser. nsIMimeHeaders me donne l'erreur suivante :

Erreur : uncaught exception: [Exception... "Component returned failure code: 0xc1f30001 (NS_ERROR_NOT_INITIALIZED) [nsIMimeHeaders.extractHeader]"  nsresult: "0xc1f30001 (NS_ERROR_NOT_INITIALIZED)"  location: "JS frame :: chrome://sp4mwars/content/sp4mwars.js :: parseAuthorName :: line 30"  data: no]

ce qui correspond à cela :

var temp=hdr.extractHeader("From:",false);

auriez vous une idée?

merci d'avance

# Re: accès au nom de l'émetteur d'un email

Envoyé par : Paul Rouget

Date : 10/12/2007 17:06

Tu le récupères comment ton composant MIMEHeaders ?

Je te conseille de passer par l'URL du mail:

URL.mimeHeaders.extractHeader

# Re: accès au nom de l'émetteur d'un email

Envoyé par : Paul Rouget

Date : 10/12/2007 17:09

# Re: accès au nom de l'émetteur d'un email

Envoyé par : lezioul

Date : 10/12/2007 17:39

Paul Rouget a écrit:

Tu le récupères comment ton composant MIMEHeaders
?

Je te conseille de passer par l'URL du mail:

URL.mimeHeaders.extractHeader

hummmz, c'est peut être ça le problème...je ne le récupère pas... ;) j'vais regarder l'exemple fourni et je vous tiens au courant.

merci

# Re: accès au nom de l'émetteur d'un email

Envoyé par : lezioul

Date : 10/12/2007 18:04

en fait, si je comprends bien, il faut construire un iterateur sur les headers du mail et tester le nom du champ pour obtenir "from" (par exemple) mais n'étais pas trop habitué à la syntaxe de javascript, j'ai du mal à saisir où est invoqué la fonction décrite en ligne362 :

http://mxr.mozilla.org/mozilla/source/ma(..)

# Re: accès au nom de l'émetteur d'un email

Envoyé par : Paul Rouget

Date : 10/12/2007 18:28

Pour récupérer ton header from, c'est très simple:

nsIMsgMailNewsUrl.mimeHdr.extractHeader("from", false);

Pour récupérer l'URL, ça doit etre un truc dans le genre:

   var msg = GetSelectedMessages()[0];

Tu peux aussi jouer avec ce service: nsIMsgMailSession

# Re: accès au nom de l'émetteur d'un email

Envoyé par : lezioul

Date : 11/12/2007 11:47

ok, merci.

donc, je suis ton conseil et je fais ça :

var url=GetSelectedMessages()[0];

qui me donne une url vers le message courant (une fois affichée, ça y ressemble en tout cas). Ensuite, je souhaite récupérer les headers :

var from=url.mimeHeaders.extractHeader("from", false);

et il me sort : Erreur : url.mimeHeaders has no properties

je comprends pas trop.

je vais aussi jeter un coup d'oeil du côté du service nsIMailtoUrl, ya une méthode getMessageContents qui pourrait être intéressante.

# Re: [Résolu] accès au nom de l'émetteur d'un email

Envoyé par : lezioul

Date : 11/12/2007 12:16

Ok, c'est bon :)

grâce à tes conseils, j'ai fini par utiliser ça :

var url=GetSelectedMessages()[0];
var msgHdr = messenger.msgHdrFromURI(url);
var from=msgHdr.mime2DecodedAuthor;
return from;

qui me renvoi un truc du style :

displayName <emailAddress>

d'où je peux ensuite extraire uniquement le displayName.

j'ai édité le sujet du premier message. Merci pour ton aide.

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.