Récupérer mail avec IMAP

Répondre
caporga
le 09/08/2010 à 07:42
caporga
Bonjour la communauté, salut La globule,

Mon but est de mettre en base de donnée un certain nombre d'infos mails (la date, le sujet, qui me l'envoi et le texte) pour simplifier mon stockage. je suis bloqué avec la fonction imap_fetchbody
caporga
caporga
le 09/08/2010 à 07:45
caporga
Voici le code
<?php
$mbox=imap_open("{xxxxxxxxxx:110/pop3}", "xxxxxxxx", "xxxxxxxx");
$headers=imap_headers($mbox);
if($headers==false){
echo "Erreur !\n";
}else{
while(list($key,$val)=each($headers)){
$no=$key+1;
$header=imap_headerinfo($mbox, $no);
$from=$header->from;
$subject=$header->subject;

$mailtest="xxxxxxxx";
if($mailtest=="".$from[0]->mailbox."@".$from[0]->host.""){
echo "Message de:".$from[0]->personal." [".$from[0]->mailbox."@".$from[0]->host."]<br>
".$subject."";
$text=imap_fetchbody($mbox, $no, 1);

//$text=strip_tags($text);
//$text=utf8_encode($text);


$text=str_replace("----- Original Message -----", "", $text);
$text=str_replace("From:", "De :", $text);
$text=str_replace("To:", "Pour :", $text);
$text=str_replace("Sent:", "Envoy&eacute; :", $text);
$text=str_replace("Subject:", "<strong>Sujet :</strong>", $text);
//$text=str_replace(">", "", $text);
$text=str_replace("=20", "", $text);
$text=str_replace("=E9", "&eacute;", $text);
$text=nl2br($text); // qu'en affichage
echo "".$text."<br><hr>";
}

}
}
imap_close($mbox);
?>
caporga
caporga
le 09/08/2010 à 07:47
caporga
mon but est récupérer le texte brut, mais uniquement le texte brut.

y a t il une solution ?
$text=imap_fetchbody($mbox, $no, 1);
caporga
LA GLOBULE
le 09/08/2010 à 21:15
LA GLOBULE
Comment es tu sur que la partie texte du mail correspond à la première partie du mail ?
Et d'ailleurs, comment être sur que cette partie texte existe ?

A mon avis, tu brules quelques étapes la :)
caporga
le 09/08/2010 à 23:26
caporga
salut la globule,

C'est bien mon problème, rajouter des étapes pour que cela fonctionne mieux.

avec le code établit, j'arrive à récupérer le texte, il s'écrit sans problème, même trop car j'ai le corps du texte + l'HTML + les ajouts From to sent etc. en gros le texte n'est pas propre. actuellement je n'arrive pas à récupérer uniquement le texte.
caporga
LA GLOBULE
le 09/08/2010 à 23:44
LA GLOBULE
Tu as imap_fetchstructure qui pourrait t'aider à décortiquer les mails.

Si tu veux un conseil, lis à fond la doc PHP des fonctions IMAP, mais aussi la spécification du protocole IMAP.
Ce n'est pas parce qu'un code fonctionnera sur un ou deux exemples qu'il pourrait être jugé comme bon.

De plus, comme les clients mails font un peu tout et n'importe quoi, même si ton code respecte le protocole, c'est possible de ne pas arriver "à lire" certains mails.

PS : y'a rien de plus chiant que le mail à gérer
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours