Bonjour,
Je suis encore débutant en php et je voudrais de l'aide pour finir un code que je n'arrive pas à terminer.
Le but de ce code est de récupérer des mails pour ensuite créer un fichier à partir de ce mail de mettre le contenu du mail dans le fichier et de nommer ce fichier avec le sujet du mail.
Pour l'instant j'en suis là et mon code fonctionne mais pas exactement comme je l'aimerais, pour le moment je fais ça en deux pages une qui récupère tous les mails et quand je clique sur un des mails j'arrive sur ma deuxième page ou je créé mon fichier. Moi je voudrais automatiser ça que je lance mon fichier php et que ça traite tous mes mails reçu sans avoir besoin de cliquer pour sélectionner le mail que je veux traité dans le but après de lancer ce code php toutes les 1 ou 2 minutes pour traiter les mail qui arrive avec un cron je pense mais pour l'instant j'en suis pas encore là. Je pense qu'il faut faire une sorte de boucle mais je suis dessus depuis hier et j'arrive pas à m'en sortir si quelqu'un peut m'aider ou me mettre sur la voie.
Voici le code de mes deux pages:
Deuxième page
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 <?php $hostname = '{imap.gmail.com:993/imap/ssl}INBOX'; $login = 'mon_mail'; $motDePasse = 'tmon_mdp'; $mbox = imap_open($hostname,$login,$motDePasse) or die ('La connexion a échoué'.imap_last_error()); $mails = FALSE; if (FALSE === $mbox) { $err = 'La connexion a échoué. Vérifiez vos paramètres!'; } else { $info = imap_check($mbox); if (FALSE !== $info) { $nbMessages = min(50, $info->Nmsgs); $mails = imap_fetch_overview($mbox, '1:'.$nbMessages, 0); } else { $err = 'Impossible de lire le contenu de la boite mail'; } imap_close($mbox); } if (FALSE === $mails) { echo $err; } else { echo 'La boite aux lettres contient '.$info->Nmsgs.' message(s) dont '. $info->Recent.' recent(s)'. "<br />\n". "<br />\n"; foreach ($mails as $mail) { echo $mail->from. ' <a href="imap_detail2.php?uid='.$mail->uid.'">'. $mail->subject.'</a> '. $mail->date."<br />\n"; } } ?>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 <?php //connexion boite gmail $hostname = '{imap.gmail.com:993/imap/ssl}INBOX'; $login = 'mon_mail'; $motDePasse = 'mon_mdp'; $mbox = imap_open($hostname,$login,$motDePasse); if (FALSE === $mbox) { die('La connexion a échoué. Vérifiez vos paramètres!'); } else { $uid = $_GET['uid']; $headerText = imap_fetchHeader($mbox, $uid, FT_UID); $header = imap_rfc822_parse_headers($headerText); $headers = imap_headers ($mbox); // REM: Attention s'il y a plusieurs sections $corps = imap_fetchbody($mbox, $uid, 1, FT_UID); } imap_close($mbox); ?> <?php //création du fichier $objMail = $header->Subject; (String)$file = (String)$objMail.".txt"; //réccupération du sujet echo "objet:".$objMail."</br>"; // Écrit le résultat dans le fichier echo "corps:".$corps."</br>"; file_put_contents($file, $corps); // Ouvre un fichier pour lire un contenu existant $current = file_get_contents($file); ?>
Partager