Sto tentando di creare un servizio IMAP sul mio sito Web con l'aiuto di php. Praticamente ha pochi passaggi.Integrazione di IMAP sul sito Web php
La parte principale che voglio è che ottengo un elenco di cartelle di account Gmail, al clic di una particolare cartella, l'elenco di mail in quella cartella dovrebbe essere aperto e al clic di una particolare posta, i suoi dettagli dovrebbe aprirsi.
Ho la lista delle cartelle, ho una lista di mail, ho i dettagli delle mail, ma sono parte separata, ma desidero combinare e creare un processo come detto sopra.
Il codice di 3 fasi è riportata qui sotto
Fase 1 Elenco cartelle: Sarà un elenco di tutte le cartelle di Gmail. Il codice che ho è
$folders = imap_list($imap, "{imap.gmail.com:993/imap/ssl}", "*");
echo "<ul>";
foreach ($folders as $folder) {
$folder = str_replace("{imap.gmail.com:993/imap/ssl}", "", $folder);
$folder = str_replace("[Gmail]/", "", $folder);
echo '<li>' . $folder . '</li>';
}
echo "</ul>";
o/p di fase 1
INBOX
DRAFT
SENT
TRASH
Fase 2 lista e-mail (cliccando su una lista di posta cartella dovrebbe rimanere aperto)
$numMessages = imap_num_msg($imap);
for ($i = $numMessages; $i > ($numMessages - 20); $i--)
{
$header = imap_header($imap, $i);
$fromInfo = $header->from[0];
$replyInfo = $header->reply_to[0];
$details = array(
"fromAddr" => (isset($fromInfo->mailbox) && isset($fromInfo->host))
? $fromInfo->mailbox . "@" . $fromInfo->host : "",
"fromName" => (isset($fromInfo->personal))
? $fromInfo->personal : "",
"replyAddr" => (isset($replyInfo->mailbox) && isset($replyInfo->host))
? $replyInfo->mailbox . "@" . $replyInfo->host : "",
"replyName" => (isset($replyTo->personal))
? $replyto->personal : "",
"subject" => (isset($header->subject))
? $header->subject : "",
"udate" => (isset($header->udate))
? $header->udate : ""
);
$uid = imap_uid($imap, $i);
$datee= gmdate("F j, Y, g:i a", $details["udate"]);
echo "<ul>";
echo "<li><strong>From:</strong>" . $details["fromName"];
echo " " . $details["fromAddr"] . "</li>";
echo "<li><strong>Subject:</strong> " . $details["subject"] . "</li>";
echo "<li><strong>DATE:</strong> " . $datee . "</li>";
}
o/p del passaggio 2 (fare clic su un particolare contenuto di posta di quella mail dovrebbe essere aperto)
From:ABC
Subject: TOPIC
DATE: September 2, 2015, 9:00 am
Fase 3 Visualizzazione dei messaggi
$message_count = imap_num_msg($imap);
for ($i = 1; $i <= $message_count; ++$i) {
$header = imap_header($imap, $i);
$body = trim(substr(imap_body($imap, $i), 0, 100));
$prettydate = date("jS F Y", $header->udate);
if (isset($header->from[0]->personal)) {
$personal = $header->from[0]->personal;
} else {
$personal = $header->from[0]->mailbox;
}
$email = "$personal <{$header->from[0]->mailbox}@{$header->from[0]->host}>";
echo "On $prettydate, $email said \"$body\".\n";
}
Qualcuno può tel come posso raggiungere il requisito di cui sopra
Si noti che potrebbe essere necessario verificare l'IP del server prima che Google consenta l'accesso alle e-mail tramite IMAP. (Https://github.com/rapideinternet/php-validate-imap-ip-gmail) – akalucas