我正在尝试使用 PHP 和 IMAP 实现自动化。
我为数据库中的每个元素分配了一个 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.com
到 myaccount+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/