我正在使用来自swiftmailer.org的 SwiftMailer for PHP
一切正常,但我想知道是否有办法将已发送的消息从 SwiftMailer 发送的邮件帐户添加到已发送的文件夹中?
仅此而已,祝您有美好的一天。
我正在使用来自swiftmailer.org的 SwiftMailer for PHP
一切正常,但我想知道是否有办法将已发送的消息从 SwiftMailer 发送的邮件帐户添加到已发送的文件夹中?
仅此而已,祝您有美好的一天。
根据开发人员的说法,swiftmailer 无法复制到已发送文件夹,因为它是邮件发件人而不是邮箱管理器。
如github 页面所述:
Swiftmailer 是一个用于发送电子邮件的库,而不是用于管理邮箱的库。所以,这确实超出了 Swiftmailer 的范围。
但是,来自 php.net 的某个人发布了一个可能对您有用的解决方案:
使用 SwiftMailer 通过 PHP 发送消息。
$message = Swift_Message::newInstance("Subject goes here");
// (then add from, to, body, attachments etc)
$result = $mailer->send($message);
当您在上面的步骤 1) 中构造消息时,将其保存到一个变量中,如下所示:
$msg = $message->toString();
// (this creates the full MIME message required for imap_append()!!
// After this you can call imap_append like this:
imap_append($imap_conn,$mail_box,$msg."\r\n","\\Seen");
我也遇到过类似的问题,Sutandiono 的回答让我朝着正确的方向前进。但是,由于完整性和连接到 Exchange 2007 服务器的其他问题,我想提供一个完整的片段,用于将消息存储到 IMAP 上的已发送文件夹:
$msg = $message->toString();
// $message is instance of Swift_Message from SwiftMailer
$stream = imap_open("{mail.XXXXX.org/imap/ssl/novalidate-cert}", "username", "password", null, 1, array('DISABLE_AUTHENTICATOR' => 'GSSAPI'));
// connect to IMAP SSL (port 993) without Kerberos and no certificate validation
imap_append($stream,"{mail.XXXXX.org/imap/ssl/novalidate-cert}Sent Items",$msg."\r\n","\\Seen");
// Saves message to Sent folder and marks it as read
imap_close($stream);
// Close connection to the server when you're done
用您自己的信息替换服务器主机名、用户名和密码。