0

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.

Pankaj Sharma
  • 33
  • 2
  • 10

1 Answers1

1

Problem resolved, I filtered using date parameter so that it fetch minimum emails, and i stored message_id in to my database and using this message_id i put a condition if it already exists or not in my database.

Pankaj Sharma
  • 33
  • 2
  • 10