【问题标题】:Simple way to forward emails using PHP IMAP使用 PHP IMAP 转发电子邮件的简单方法
【发布时间】:2019-11-05 18:57:45
【问题描述】:

我正在编写一个脚本,它将获取同一服务器上不同帐户中的所有新电子邮件,检查关键字,然后根据找到的关键字将每封电子邮件移动到该帐户中的不同帐户和文件夹。 我一直在寻找一种简单的方法来将电子邮件从一个帐户移动到另一个帐户,然后再移动到该帐户中的文件夹。似乎没有一个简单的 imap_forward() 函数。 imap_mail_move() 仅适用于同一帐户。我已经在互联网上搜索了几个小时来寻找一种方法来做到这一点,而不必像发送新电子邮件一样遍历附件并获取电子邮件的每个部分,然后再将其发送到目标地址。我需要确保在此过程中不会丢失任何信息,并且电子邮件到达目的地的方式与最初收到的完全相同。它可以看起来像一个转发的消息,这很好,只要附件,来自地址和正文是完整的。

【问题讨论】:

    标签: php email imap php-imap


    【解决方案1】:

    如果您还具有对目标邮箱的 IMAP 访问权限,则可以同时打开两个 IMAP 连接。使用一个连接从源帐户读取消息,另一个连接以imap_append() 将其发送到目标帐户。

    您必须手动重新构建消息标头,但这应该很简单,看起来您可以这样做:

    $newMessage = imap_headers($sourceStream) . "\r\n" . imap_body($sourceStream)
    imap_append($destinationStream, $destinationMailbox, $newMessage);
    

    【讨论】:

    • 您应该能够获取整个 RFC822 正文并重新上传(不获取任何子部分)
    • @Max 我也这么想,但我没有看到返回整个消息的函数。尚不清楚 imap_body() 是否这样做。
    • imap_headers() 返回邮箱中所有邮件的标头。我需要一一移动每条消息及其相应的标题。这对每封电子邮件有何作用?
    猜你喜欢
    • 2013-03-14
    • 2012-01-30
    • 1970-01-01
    • 1970-01-01
    • 2016-05-07
    • 2010-12-08
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    相关资源
    最近更新 更多