gpt4 book ai didi

php - 如何通过 PHP IMAP 从 Gmail 服务器读取电子邮件

转载 作者:行者123 更新时间:2023-12-05 02:14:59 26 4
gpt4 key购买 nike

我正在尝试使用 PHP IMAP 从 Gmail 服务器读取所有电子邮件。

我有以下配置:

$hostname = '{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX';
$username = 'email';
$password = 'pass';

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

var_dump($inbox);exit;

我收到 PHP 警告和通知:

imap_open(): Couldn't open stream {imap.gmail.com:995/imap/ssl/novalidate-cert}INBOX

Unknown: Can't connect to imap.gmail.com,993: Timed out (errflg=2) in Unknown on line 0

请帮忙

最佳答案

set_time_limit(4000); 

// Connect to gmail
$imapPath = '{imap.gmail.com:993/imap/ssl}INBOX';
$username = 'your_email_id@gmail.com';
$password = 'your_gmail_password';

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

/* ALL - return all messages matching the rest of the criteria
ANSWERED - match messages with the \\ANSWERED flag set
BCC "string" - match messages with "string" in the Bcc: field
BEFORE "date" - match messages with Date: before "date"
BODY "string" - match messages with "string" in the body of the message
CC "string" - match messages with "string" in the Cc: field
DELETED - match deleted messages
FLAGGED - match messages with the \\FLAGGED (sometimes referred to as Important or Urgent) flag set
FROM "string" - match messages with "string" in the From: field
KEYWORD "string" - match messages with "string" as a keyword
NEW - match new messages
OLD - match old messages
ON "date" - match messages with Date: matching "date"
RECENT - match messages with the \\RECENT flag set
SEEN - match messages that have been read (the \\SEEN flag is set)
SINCE "date" - match messages with Date: after "date"
SUBJECT "string" - match messages with "string" in the Subject:
TEXT "string" - match messages with text "string"
TO "string" - match messages with "string" in the To:
UNANSWERED - match messages that have not been answered
UNDELETED - match messages that are not deleted
UNFLAGGED - match messages that are not flagged
UNKEYWORD "string" - match messages that do not have the keyword "string"
UNSEEN - match messages which have not been read yet*/

// search and get unseen emails, function will return email ids
$emails = imap_search($inbox,'UNSEEN');

$output = '';

foreach($emails as $mail) {

$headerInfo = imap_headerinfo($inbox,$mail);

$output .= $headerInfo->subject.'<br/>';
$output .= $headerInfo->toaddress.'<br/>';
$output .= $headerInfo->date.'<br/>';
$output .= $headerInfo->fromaddress.'<br/>';
$output .= $headerInfo->reply_toaddress.'<br/>';

$emailStructure = imap_fetchstructure($inbox,$mail);

if(!isset($emailStructure->parts)) {
$output .= imap_body($inbox, $mail, FT_PEEK);
} else {
//
}
echo $output;
$output = '';
}

// colse the connection
imap_expunge($inbox);
imap_close($inbox);

要使用它,您需要安装并启用 php5-imap

您可以使用此命令安装 PHP5 IMAP 模块:

apt-get install php5-imap

但是默认情况下它没有启用,所以启用它:

php5enmod imap

要查看更改,请重新启动 Apache

service apache2 restart

对于 Xampp7 及更高版本的 Windows,

转到php.ini,去掉分号,

;extension=imap

关于php - 如何通过 PHP IMAP 从 Gmail 服务器读取电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52815563/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com