如何操纵电子邮件中的“发件人”字段并使“收件人”用户看到与实际不同的东西。
例子:
真的从
From: [email protected]
但他们看到
From: Tremayne "Top Dog" Stamper
我从操纵 SMTP 中听说过它,但真的不确定它有多准确或如何完成
如何操纵电子邮件中的“发件人”字段并使“收件人”用户看到与实际不同的东西。
例子:
真的从
From: [email protected]
但他们看到
From: Tremayne "Top Dog" Stamper
我从操纵 SMTP 中听说过它,但真的不确定它有多准确或如何完成
在其基础上,SMTP 只是一个基于文本的协议,没有真正的验证。这是一个例子:
“MAIL FROM:”行定义了 SMTP 信封发件人,而 From: 在消息 DATA 中定义。有一些方法可以防止这种情况发生,但它们是在邮件服务器逻辑中定义的,而不是在协议本身中。
例如,作为邮件提供商,我可能要求用户使用 user@domain 类型的用户名进行身份验证。然后我的邮件服务器可能要求他们发送的任何邮件都有一个信封发件人和一个 From: 标头,该标头与他们认证的用户相匹配。DKIM 和 SPF 等其他技术也可以在该领域提供帮助。
这里有几个不同的事情需要考虑。如果您只想显示不同的名称或电子邮件地址,请将邮件的“发件人”标题(邮件发件人地址)设置为显示名称在括号中的电子邮件地址,如下所示:
来自:乔示例 <[email protected]>
请记住,邮件标题中的“发件人”行仅用于显示目的。实际路由是由 SMTP 信封地址完成的。这是 SMTP 服务器实际用于在服务器之间传输消息的内容。这可能与消息“发件人”标头不同。如果您有自定义 SMTP 引擎,只需让它在 SMTP 信封中使用一个地址,在实际邮件的“发件人”标头中使用另一个地址。
您可能出于许多正当理由想要这样做,但请不要出于恶意目的。
请注意,可以在RFC 5322 - A.2.1中找到正确的语法示例
当然,您需要一个允许中继的 SMTP 服务器,这几乎是不可能找到的……或者自己动手(只是不要利用这些知识来发送垃圾邮件!)。
“真正发件人”地址来自 SMTP 对话中的“发件人:”对话框。
“假冒”来自利用电子邮件客户端中的常见做法,即显示在 SMTP 对话的数据部分中布置的各种标头字段。例如:
如果您在数据部分省略了“发件人:”和“收件人:”行,它将显示实际的信封发件人和收件人。
请注意,垃圾邮件过滤器通常会寻找这些技巧,并且肯定不会让您成为任何永久的朋友。此外,这不适用于所有邮件客户端(仅适用于最常见的客户端)。
是的,它是通过手动设置 SMTP 标头来完成的。去谷歌上查询。但是不要被垃圾邮件抓到......
这是我直接从代码中提取的 2c - 用 C# 编写