Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Fetch emails with specific label from G-mail in PHP

I have a lot emails in my mail box with some specific label like "NR-Support" which contains emails from www.naveedramzan.com contact form.

I have developed ticketing system and now its directly saving ticketing system from Contact form.

But, I want to transform all old emails marked as NR-Support to that ticketing system.

I have tried with imap_open but didn't get any clue to get emails of specific label.

$hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
$username = '[email protected]';
$password = 'abc123';
$inbox = imap_open($hostname,$username,$password) or die('Cannot connect to Gmail: ' . imap_last_error());
$emails = imap_search($inbox,'ALL');
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);
        $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;
}
imap_close($inbox);
like image 950
Naveed Ramzan Avatar asked Jan 15 '16 09:01

Naveed Ramzan


People also ask

How do I export emails from labels in Gmail?

Click the dropdown icon to the left of “Mail” or click “Edit” to the right of “Mail.” 5. Click the bubble next to “Select labels,” then checkmark the labels you wish to export. 6. Click “Done.” 7.

How can I retrieve mail from Gmail using PHP?

php /* connect to gmail */ $hostname = '{imap.gmail.com:993/imap/ssl}INBOX'; $username = 'my gmail id'; $password = 'my gmail password'; /* try to connect */ $inbox = imap_open($hostname,$username,$password) or die('Cannot connect to Gmail: ' .


1 Answers

For accessing specific label in mail box, we need to specific the label here.

$hostname = '{imap.gmail.com:993/imap/ssl}INBOX';

$hostname = '{imap.gmail.com:993/imap/ssl}LABEL';
like image 123
Naveed Ramzan Avatar answered Sep 30 '22 18:09

Naveed Ramzan