gpt4 book ai didi

php - 如何从 Zend_Mail_Message 获取发件人的电子邮件地址?

转载 作者:可可西里 更新时间:2023-10-31 22:45:49 25 4
gpt4 key购买 nike

我正在使用 Zend_Mail_Message 类在我的 PHP 应用程序中显示电子邮件,并且能够输出主题、内容、日期甚至发件人的姓名(使用 $message->from),但我不能弄清楚如何获取发送消息的人的电子邮件地址。该文档没有任何帮助,谷歌搜索找到了关于如何使用 Zend 发送消息的一百万个结果,但没有关于获取发送消息的地址的任何结果。

最佳答案

编辑:

<删除>这就是我最终这样做的方式。经过更多的挖掘,我在一个名为“return-path”的字段中找到了发件人的电子邮件。不幸的是,这个字段的名称中有一个破折号(WTF??)所以要访问它,我必须这样做: $return_path = '返回路径'; $message->reply_to = $zendMessage->$return_path;


使用返回路径会导致某些电子邮件出现问题,特别是来自无回复帐户(mail-noreply@gmail.com、member@linkedin.com 等)的邮件。这些地址最终看起来像这样:

m-9xpfkzulthmad8z9lls0s6ehupvordjdcor30geppm12kbvyropj1zs5@bounce.linkedin.com

...这显然不适用于在前端的“发件人”字段中显示。 Apple Mail 和 Gmail 等电子邮件客户端显示 mail-noreply@gmail.com 或 member@linkedin.com,这也是我想要的。

无论如何,经过更多的研究,我发现 Zend Mail Message 对象中的“发件人”字段总是看起来像这样:

"user account name" <user@email.com>

< > 中的部分是我所追求的,但只是做 $from = $zend_message->from 只给了我用户的帐户名(因此我最初的问题)。经过更多的尝试,这就是我最终让它工作的方式:

  $from   = $zendMessage->from;
$start = strpos($from, '<');
$email = substr($from, $start, -1);
$result = str_replace('<', '', $email);

希望这会避免一些人的挫败感。如果有人知道更简单的方法,请告诉我。

关于php - 如何从 Zend_Mail_Message 获取发件人的电子邮件地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11800184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com