I am working on vtiger CRM module for fetching emails from mail server using php imap with different applied conditions.
$hostname = '{imap.gmail.com:993/ssl/novalidate-cert}';
$username = 'myemail@gmail.com';
$password = 'mypswd';
$inbox = imap_open($hostname,$username,$password) or die('Cannot connect to Gmail: ' . imap_last_error());
$emails = imap_search($inbox,'FROM from@gmail.com');
if($emails) {
$output = '';
rsort($emails);
foreach($emails as $email_number) {
$overview = imap_fetch_overview($inbox,$email_number,0);
$message = imap_fetchbody($inbox,$email_number,2);
$message = trim(quoted_printable_decode($message));
$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.= '<div class="body">'.$message.'</div>';
echo $output;die;
}
echo $output;
}
This complete code is working fine, but want to fetch only new emails those are not stored into my database yet, so that once an email is stored in my database it should not be stored again.