【问题标题】:imap_mail_copy php error messageimap_mail_copy php 错误信息
【发布时间】:2012-09-25 09:48:04
【问题描述】:

我正在尝试使用 imap_mail_copy 将邮件从收件箱复制到 Gmail 中的另一个文件夹

我可以正常连接到邮箱并阅读邮件,但我无法在没有错误的情况下移动它们

if(!imap_mail_copy($connection,'$msg_num','[Gmail]/Starred', CP_UID))
        {
            echo "Didn't move messages number: $msg_num";
        }
imap_expunge($connection); 
imap_close($connection,CL_EXPUNGE); 

$connection 是流,$msg_num 是从标头中读取的 ($msg_num = $header->Msgno;),Starred 是文件夹

错误是

PHP Notice:  Unknown: IMAP protocol error: Could not parse command (errflg=2) in 

Unknown on line 0
PHP Notice:  Unknown: Could not parse command (errflg=2) in Unknown on line 0

【问题讨论】:

  • 关于此的另一个线程:stackoverflow.com/questions/6262819/…。顺便说一句,您是否尝试过复制到另一个目录?您是否尝试将相同的东西用于另一个 imap 帐户(不是谷歌)? (只是试图缩小你的问题:))。
  • 您是否尝试过(没有CP_UID,并且一次性关闭和删除?): imap_mail_copy($mbox,'16','[Gmail]/Starred'); // 16是消息号,也可以是范围。(ex: '1:15') imap_close($mbox,CL_EXPUNGE);
  • 删除 CP_UID 已经成功了——谢谢伙计!

标签: php gmail-imap


【解决方案1】:

如果$msg_num 是您需要提供给函数的变量,您需要将代码更改为:

if(!imap_mail_copy($connection,"$msg_num",'[Gmail]/Starred', CP_UID))

或:

if(!imap_mail_copy($connection,$msg_num,'[Gmail]/Starred', CP_UID))

或(如果需要将其转换为字符串):

if(!imap_mail_copy($connection, (string) $msg_num,'[Gmail]/Starred', CP_UID))

现在您实际上是在发送字符串$msg_num

【讨论】:

  • 好地方!更改了它,但它似乎没有解决问题。还有其他想法吗?谢谢!
猜你喜欢
  • 2013-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-17
  • 2011-08-06
  • 2015-01-11
  • 1970-01-01
  • 2023-03-06
相关资源
最近更新 更多