Récupérer mail avec IMAP
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
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é :", $text);
$text=str_replace("Subject:", "<strong>Sujet :</strong>", $text);
//$text=str_replace(">", "", $text);
$text=str_replace("=20", "", $text);
$text=str_replace("=E9", "é", $text);
$text=nl2br($text); // qu'en affichage
echo "".$text."<br><hr>";
}
}
}
imap_close($mbox);
?>
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
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 :)
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
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
ok, merci, je vais me replonger la dedans.
++
caporga
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: