1

我正在使用 zend 邮件组件从 pop3 服务器读取电子邮件。

我想知道谁收到了这封电子邮件,当我尝试 $message->from 时,我看到没有发件人电子邮件的“FirstName LastName”。

我做了 print_r($message->getHeaders()) 并且没有在这封电子邮件的任何标题中看到发件人的电子邮件。

我认为发件人电子邮件是必需的,并且始终必须设置。这里有什么问题吗?

是否可以使用“发件人”标题的电子邮件,只有名字/姓氏而没有电子邮件?

4

3 回答 3

2

根据我的评论:

如果您print_r()是一个有效的from标题并且地址在尖括号中,您可能只能通过查看 HTML 源来查看它,因为尖括号和电子邮件地址可能会被浏览器视为(尽管无法识别)HTML 标记。

但是,如果将来有人遇到此问题(并且电子邮件地址未显示在 HTML 源中),请记住,发件人可能发送了没有From:地址的电子邮件,即使这在技术上是无效的。

于 2012-04-10T17:17:13.840 回答
1

是的,这是完全可能的。每封电子邮件通常有 2 个“发件人”地址。99% 的时间,这些是相同的值,但它们可以不同。有在 SMTP 会话期间使用的 MAIL FROM 地址,它发出 MAIL FROM 命令。然后,在电子邮件标题中找到 FROM 地址(此 FROM 地址在 SMTP DATA 命令期间发送)。这就是您可以获取电子邮件欺骗的方式。

这样想(在蜗牛邮件的物理世界中)。您可以在信封外面有一个 FROM 地址(这相当于 MAIL FROM 命令)。这应该是发送消息的人。然后,您可以在信封内的信头上有一个不同的 FROM 值。这将是您在电子邮件标题中看到的 FROM 值。

这是一些没有 F​​ROM 地址的原始标头的示例

From: "Steve James"  
To: "John Doe" <you@yourcompany.com>  
Date: Fri, 24 Feb 2012 07:43:40 -0800  
Subject: Here is the progress report  

....  

希望我没有把它弄得像泥巴一样清晰。

--

于 2012-04-09T12:53:41.353 回答
0

使用以下格式:

Firstname Lastname <vasya@poupkine.com>
于 2012-04-08T10:18:08.380 回答