首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ZF3将邮件添加到IMAP文件夹

使用ZF3将邮件添加到IMAP文件夹
EN

Stack Overflow用户
提问于 2018-07-07 03:40:53
回答 1查看 111关注 0票数 0

我正在尝试使用Zend Framework 3向IMAP文件夹添加新消息。我使用的代码如下:

代码语言:javascript
复制
...
$draftMessage = new \Zend\Mail\Storage\Message([
  'headers' => [
    'subject' => 'voyteck0@gmail.com',
  ],
  'content' => 'ala ma kota',
]);  
[valid-imap-connection]->appendMessage($draftMessage, 'Drafts', [\Zend\Mail\Storage::FLAG_DRAFT]);
...

但是,我总是会抛出一个异常: Zend\Mail\Storage\Exception\RuntimeException:'cannot create message,请检查文件夹是否存在,并在/.../zendframework/zend-mail/src/Storage/Imap.php(480)中抛出您的标志

我还在这里使用了一个伪元素valid-imap-connection,以避免模糊问题--但连接工作正常(检索邮件、发送邮件、在文件夹之间移动等)。

文件夹存在-我已经在ZF中做了一些调试,发现在上面的代码中,480行的命令返回NULL。如果我将文件夹更改为不存在的文件夹-它将返回false。异常本身被抛出一次(!结果)-因此对于这种情况,null也是真的。

然而,即使我删除了抛出异常的代码(并且代码使用该空值完成了执行),消息仍然不会出现在文件夹中(直接在磁盘上检查)。在Dovecot日志中没有任何有趣的东西(除了成功建立连接的事实之外)。

非常欢迎任何想法:)

EN

回答 1

Stack Overflow用户

发布于 2018-07-11 22:33:10

我认为问题出在两件事上:

我应该使用\Zend\

  • \Message类(而不是...\Storage...1)

  • draftMessage应该是字符串版本(实际上不知道为什么-因为appendMessage已经使用了toString()函数)

因此,可以工作的代码如下:

代码语言:javascript
复制
...
$draftMessage = new \Zend\Mail\Message();  
$draftMessage->setSubject('voyteck0@gmail.com');
$draftMessage->setBody('ala ma kota');
[valid-imap-connection]->appendMessage($draftMessage->toString(), 'Drafts', [\Zend\Mail\Storage::FLAG_DRAFT]);
...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51216732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档