Hướng dẫn dùng IMAP lấy thông tin từ gmail trong PHP

Trong bài này mình sẽ hướng dẫn các bạn lấy thông tin mail từ gmail dùng IMAP.

Trước hết để xài IMAP các bạn mở commnet php_imap.dll trong php.ini

extension=php_imap.dll;

sau đó restart apache service.

Và đây là code PHP để lấy thông tin mail.

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

/* 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');

/* if emails are returned, cycle through each... */
if($emails) {
	
	/* begin output var */
	$output = '';
	
	/* put the newest emails on top */
	rsort($emails);
	
	/* for every email... */
	
		
	/* get information specific to this email */
	$overview = imap_fetch_overview($inbox, "number_of_message", 0);
	$message = imap_fetchbody($inbox, "number_of_message", 2);
    echo "<pre>";
    print_r($overview); // thông tin mail
    echo "</pre>";
    echo $message; // nội dung mail
} 


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

và đây là kết quả

Array
(
    [0] = stdClass Object
        (
            [subject] = Reset Password
            [from] = Google system_info@google.com;
            [to] = cuongdevphp@gmail.com
            [date] = Mon, 05 Dec 2016 15:38:23 +0700
            [message_id] = 5845277f75eac@google.com;
            [size] = 4161
            [uid] = 216
            [msgno] = 23
            [recent] = 0
            [flagged] = 0
            [answered] = 1
            [deleted] = 0
            [seen] = 1
            [draft] = 0
            [udate] = 1480927151
        )

)

To reset your password click the link below:

If you did not request your password to be reset, please ignore this email and your password will stay as it is.This link will expire in two hours.

Sau khi lấy ra các bạn có thể insert content mail vào database.

Ngoài ra còn 1 số hàm như imap_clearflag_full, imap_setflag_full để update info cho mail đó.

imap_clearflag_full($inbox, "number_of_message", "\\Seen");
imap_setflag_full($inbox, "number_ofmessage", "\\Seen \\Flagged");

 

Hướng dẫn dùng IMAP lấy thông tin từ gmail trong PHP
1.5 (30%) 2 votes
Tagged:

Bình luận

Hãy trở thành người đầu tiên bình luận!

Thông báo
avatar
wpDiscuz