php imap foward/redirect 帐户获取原始地址(送达)

标签 php imap

我正在尝试使用 PHPIMAP 实现自动化。

我为数据库中的每个元素分配了一个 key (例如,问题票),以便人们可以将带有附件的邮件发送到 myaccount+key@mycompany.com。使用 PHP 和 IMAP,我得到“ key ”,然后使用分配了“ key ”的元素分配正文和附件。

这很有效,除非有人想自动将通用电子邮件帐户重定向到指定的电子邮件地址。

例如,我有:

Original sender: user1@example.com
Generic e-mail address: issues@alpha.com
Assigned key: 123456

他们配置重定向 issues@alpha.commyaccount+123456@mycompany.com

当我检查 myaccount@mycompany.com 并收到邮件时,使用 PHP 和 IMAP 我得到了发件人,但是是 issues@alpha.com 我想get myaccount+123456@mycompany.com 以确定我必须将信息放在哪里。

我尝试了所有的 PHP IMAP 函数,但尽管从 gmail 读取原始邮件,但我什么也没得到,我显示了一个 "Delivered-To" 字段,其中存储了 myaccount+123456@mycompany .com.

如何获取送达字段?

非常感谢。

问候!

最佳答案

你可以使用这个php函数

imap_fetchheader ( resource $imap_stream , int $msg_number [, int $options = 0 ] )

但这将返回电子邮件的整个标题。

这是一个例子,我是如何解析 Delivered-To 的:

  • $this->连接是连接到imap
  • $i 是消息的数量(为了测试你可以使用 1)

例子

$headers = explode("\n", imap_fetchheader($this->connection, $i));
$head = array();
foreach($headers as $key => $header) {
    $data = explode(":", $header);
    if( count($data) == 2 && !isset($head[$data[0]])) {
        $head[trim($data[0])] = trim($data[1]);
    }
}

在 $head['Delivered-To'] 中将是您的地址。

关于php imap foward/redirect 帐户获取原始地址(送达),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17675328/

相关文章:

PHP - 循环中递增日期

php - Laravel 将数据持久保存到数据库为空,同时返回所有语句显示正确的数据

javascript - 使用 PHP/JavaScript/AJAX 添加行到数据库

javascript - PHP - 使用 DB mysql 更新命令

c# - 以编程方式从 gmail 下载电子邮件(备份)

c# - InterIMAP,在 C# 中查看未读 IMAP 邮件并下载附件

php - 在哪里可以找到 Windows 不支持的 PHP 函数?

jakarta-mail - javax.mail.AuthenticationFailedException : AUTHENTICATE failed. IMAP 存储未连接

gmail - POP3、IMAP 和 Exchange 之间有什么区别?

azure - 对于 Azure Active Directory 中的注册应用程序,Office 365 Exchange Online 权限不可见