我正在尝试使用Zend Framework 3将新消息添加到IMAP文件夹。 我使用的代码如下:
...
$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:“无法创建消息,请检查文件夹是否存在以及您的标志是否已放入/.../zendframework/zend-mail/src/Storage/Imap.php(480)>
我在这里还使用了一个伪元素[valid-imap-connection]来模糊问题,但该连接工作正常(检索消息,发送消息,在文件夹之间移动等)
该文件夹存在-即使在ZF中我也已经进行了一些调试,发现在该行480中,该命令在上述代码上返回NULL。如果我将文件夹更改为不存在的文件夹-它返回false。 异常本身会被抛出一次(!结果)-因此对于这种情况,null也为真。
但是,即使删除了引发异常的代码(并且该代码使用该NULL值完成了执行),该消息仍未出现在文件夹中(直接在磁盘上检查)。 Dovecot日志中没有任何有趣的内容(除了连接已成功建立的事实)。
任何想法都非常受欢迎:)
答案 0 :(得分:0)
我认为问题出在两件事上
因此有效的代码如下:
...
$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]);
...