Php Zend Mail Pop3只读未读邮件
我想问你是否存在通过pop3仅检索未读邮件的可能性 Imap有一个不可见的标志,所以它可以通过一些库来完成Php Zend Mail Pop3只读未读邮件,php,zend-framework,email,pop3,Php,Zend Framework,Email,Pop3,我想问你是否存在通过pop3仅检索未读邮件的可能性 Imap有一个不可见的标志,所以它可以通过一些库来完成 但如果我只有pop3?如何仅检索未读邮件 非常感谢。默认情况下,POP3服务器会在收到邮件后从服务器上删除邮件。因此,已读取(获取)的消息不再存在。您需要指定一个选项,使它们在每个连接上都留在服务器上。我不知道该怎么告诉你旗帜/选项是什么,但应该有一个 编辑:只需扫描文档。Zend框架中的POP3实现可能不存在这样的标志。可能您可以通过IMAP连接(我担心这不是因为您在问题中已经写过IMA
但如果我只有pop3?如何仅检索未读邮件
非常感谢。默认情况下,POP3服务器会在收到邮件后从服务器上删除邮件。因此,已读取(获取)的消息不再存在。您需要指定一个选项,使它们在每个连接上都留在服务器上。我不知道该怎么告诉你旗帜/选项是什么,但应该有一个
编辑:只需扫描文档。Zend框架中的POP3实现可能不存在这样的标志。可能您可以通过IMAP连接(我担心这不是因为您在问题中已经写过IMAP),或者——但这意味着您可以从Zend库中切换出来——您可以使用也处理pop3并提供此类标志的实现。pop3不支持未读标志。Imap有:-)您可以使用Zend框架来处理Imap 我这样做是为了找到“被退回”的邮件:
$subjectifypailed='Delivery Status Notification(Failure)';
$bouncedMails=array();
$params=数组(
'user'=>$config->gmail->user,
“主机”=>$config->gmail->host,
“密码”=>$config->gmail->password,
“端口”=>$config->gmail->port,
'ssl'=>(bool)$config->gmail->ssl,
);
$mailStorage=new Zend_Mail_Storage_Imap($params);
$count=$mailStorage->count();
$i=1;
while($i获取消息($i);
if($message->hasFlag(Zend\u Mail\u Storage::FLAG\u SEEN)==false){
if(strtolower($message->getHeader('subject'))==
strtolower($subjectivepailed)){
$bouncedMails[]=$message->getHeader('x-failed-recipients');
}
}
$i++;
}
返回$bouncedMails;
您知道另一个库允许它吗?谢谢。我尝试过imap库,但未读邮件的标志与imap相对,它不适用于pop3。它返回的未读邮件数量不正确。Ireadhttp://stackoverflow.com/questions/4119402/how-to-find-only-new-messages-when-using-phps-imap-functions-for-a-pop3-mailbo .我想这是一种独特的可能性。也许你可以将你已经收到的邮件存储在服务器上,例如数据库或文件系统中。Zend为此提供了Maildir
存储。它甚至支持标志。你可以像邮件客户端一样复制邮件并保留本地存储。这可能是最值得一试的方法。Bo这是Zend\u Mail\u存储
s,因此应该相对容易。和的可能重复,但如果我只有pop3?如何仅检索未读取的邮件?
$subjectIfFailed = 'Delivery Status Notification (Failure)';
$bouncedMails = array();
$params = array(
'user' => $config->gmail->user,
'host' => $config->gmail->host,
'password' => $config->gmail->password,
'port' => $config->gmail->port,
'ssl' => (bool) $config->gmail->ssl,
);
$mailStorage = new Zend_Mail_Storage_Imap($params);
$count = $mailStorage->count();
$i = 1;
while ($i <= $count) {
$message = $mailStorage->getMessage($i);
if ($message->hasFlag(Zend_Mail_Storage::FLAG_SEEN) === false) {
if (strtolower($message->getHeader('subject')) ==
strtolower($subjectIfFailed)) {
$bouncedMails[] = $message->getHeader('x-failed-recipients');
}
}
$i++;
}
return $bouncedMails;