imap_delete 删除而不 imap_expunge 被调用
imap_delete deleting without imap_expunge being called
概念是我想从我的 gmail 帐户获取电子邮件并将它们上传到数据库中。然后删除消息,我已经完成了所有工作,但有时我想在上传后将消息保留在 gmail 中,所以我手动注释掉 imap_expunge 行,但它仍然会删除消息。
例如:
$mbox = imap_open('{'.$mail_server.':'.$mail_port.$mail_certificate.'}'.$mail_folder, $mail_username, $mail_password) or die('Error opening mailbox: <br /> '.imap_last_error());
foreach ($mailboxheaders as $val) {
$msgno++;
$msgType = checkMsgType($mbox, $msgno);
if($msgType === "RS-StaffJourno"){
staffJournoMsg($mbox, $msgno);
}
}
//imap_expunge($mbox);
imap_close($mbox);
function staffJournoMsg($mbox, $msgno){
$type = "Journo";
setVars($mbox, $msgno, $type);
imap_delete($mbox, $msgno);
}
setVars() 工作正常。我的问题是即使注释 imap_expunge 被注释掉,脚本仍然会删除标记的消息。
当我注释掉 imap_delete() 时,它不会删除消息,但我宁愿在每种消息类型上注释掉一行而不是 imap_delete。我已尝试调查此问题,但找不到遇到此类问题的其他人。
这只是我正在使用的代码片段,一切正常,但是 imap_delete() 是否可以通过某种方式删除消息而不是仅仅标记它们?
Gmail IMAP 服务器有一个非标准功能:它会在邮件被标记 \Deleted
后立即删除邮件,而无需等待 EXPUNGE
命令:
C: 377 UID STORE 52372 +FLAGS (\Deleted)
S: * 6247 FETCH (FLAGS (\Deleted) MODSEQ (6219134) UID 52372)
S: * 6247 EXPUNGE
S: * 6248 EXISTS
S: 377 OK Success
因此,当您连接到 Gmail 服务器时,不删除邮件的唯一方法就是不调用 imap_delete
。
概念是我想从我的 gmail 帐户获取电子邮件并将它们上传到数据库中。然后删除消息,我已经完成了所有工作,但有时我想在上传后将消息保留在 gmail 中,所以我手动注释掉 imap_expunge 行,但它仍然会删除消息。 例如:
$mbox = imap_open('{'.$mail_server.':'.$mail_port.$mail_certificate.'}'.$mail_folder, $mail_username, $mail_password) or die('Error opening mailbox: <br /> '.imap_last_error());
foreach ($mailboxheaders as $val) {
$msgno++;
$msgType = checkMsgType($mbox, $msgno);
if($msgType === "RS-StaffJourno"){
staffJournoMsg($mbox, $msgno);
}
}
//imap_expunge($mbox);
imap_close($mbox);
function staffJournoMsg($mbox, $msgno){
$type = "Journo";
setVars($mbox, $msgno, $type);
imap_delete($mbox, $msgno);
}
setVars() 工作正常。我的问题是即使注释 imap_expunge 被注释掉,脚本仍然会删除标记的消息。
当我注释掉 imap_delete() 时,它不会删除消息,但我宁愿在每种消息类型上注释掉一行而不是 imap_delete。我已尝试调查此问题,但找不到遇到此类问题的其他人。
这只是我正在使用的代码片段,一切正常,但是 imap_delete() 是否可以通过某种方式删除消息而不是仅仅标记它们?
Gmail IMAP 服务器有一个非标准功能:它会在邮件被标记 \Deleted
后立即删除邮件,而无需等待 EXPUNGE
命令:
C: 377 UID STORE 52372 +FLAGS (\Deleted)
S: * 6247 FETCH (FLAGS (\Deleted) MODSEQ (6219134) UID 52372)
S: * 6247 EXPUNGE
S: * 6248 EXISTS
S: 377 OK Success
因此,当您连接到 Gmail 服务器时,不删除邮件的唯一方法就是不调用 imap_delete
。