/ / Przechowywanie wiadomości e-mail z IMAP (unikalny identyfikator e-mail)? - php, imap

Przechowywanie wiadomości e-mail z protokołu IMAP (unikalny identyfikator e-mail)? - php, imap

Jak zapisać identyfikator UNIQUE z tego e-maila w mojej bazie danych.

Próbowałem $ overview = imap_fetch_overview ($ inbox, $ email_number, 0); i otrzymałem kilka liczb, ale problem polega na tym, że liczba zmieni się, gdy jeden z e-maili zostanie usunięty.

Jak mam go właściwie przechowywać? MD5 wiadomość czy coś?

Zasadniczo próbuję odbierać wiadomości e-mail w mojej osobistej aplikacji internetowej, dzięki której mogę zarządzać i uzyskiwać dostęp do mojej własnej poczty e-mail.

W każdym razie, gdzie mogę sprawdzić i przechowywać tylko nowe e-maile?

/* connect to gmail */
$hostname = "{imap.gmail.com:993/imap/ssl}INBOX";
$username = "xxxx@gmail.com";
$password = "";

/* try to connect */
$inbox = imap_open($hostname,$username,$password) or die("Cannot connect to Gmail: " . imap_last_error());

/* grab emails */
$emails = imap_search($inbox,"ALL");
dd($emails);
/* if emails are returned, cycle through each... */
if($emails) {

/* begin output var */
$output = "";

/* put the newest emails on top */
rsort($emails);

/* for every email... */
foreach($emails as $email_number) {

/* get information specific to this email */
$overview = imap_fetch_overview($inbox,$email_number,0);
$message = imap_fetchbody($inbox,$email_number,2);

/* output the email header information */
$output.= "<div class="toggler ".($overview[0]->seen ? "read" : "unread")."">";
$output.= "<span class="subject">".$overview[0]->subject."</span> ";
$output.= "<span class="from">".$overview[0]->from."</span>";
$output.= "<span class="date">on ".$overview[0]->date."</span>";
$output.= "</div>";

/* output the email body */
$output.= "<div class="body">".$message."</div>";
}

echo $output;
}

/* close the connection */
imap_close($inbox);

Odpowiedzi:

2 dla odpowiedzi № 1

The UID istnieje w tym celu, powinien pozostać niezmieniony, chyba że serwer da inny UIDVALIDITY wartość.

http://tools.ietf.org/html/rfc3501#section-2.3.1.1

The UID jest częścią standardu IMAP, tak powinno byćpoprawnie zaimplementowane przez wszystkie serwery IMAP. Jeśli pracujesz tylko przeciwko Gmailowi, możesz jednak zajrzeć do innej wartości, ponieważ ta sama wiadomość może być widoczna pod różnymi etykietami, a następnie UID może być inny dla tego logicznie identycznego komunikatu. Nie znam jednak gmail API.