如何操作电子邮件中的“发件人”字段并使“收件人”用户看到与实际不同的内容。
例子:
真的来自
From: TStamper@yahoo.com
Run Code Online (Sandbox Code Playgroud)
但他们看到
From: Tremayne "Top Dog" Stamper
Run Code Online (Sandbox Code Playgroud)
我从操纵 SMTP 中听说过它,但真的不确定它有多准确或如何完成
jj3*_*j33 14
从根本上说,SMTP 只是一个基于文本的协议,没有真正的验证。下面是一个例子:
=== Trying g3.example.net:25...
=== Connected to g3.example.net.
<- 220 home.example.net ESMTP Exim 4.68 Thu, 07 May 2009 11:03:21 -0400
-> EHLO g3.example.net
<- 250-home.example.net Hello g3.example.net [192.168.0.4]
<- 250-SIZE 52428800
<- 250-PIPELINING
<- 250-AUTH CRAM-SHA1 CRAM-MD5 MSN
<- 250-STARTTLS
<- 250 HELP
-> MAIL FROM:<jj33@g3.example.net>
<- 250 OK
-> RCPT TO:<jj33@g3.example.net>
<- 250 Accepted
-> DATA
<- 354 Enter message, ending with "." on a line by itself
-> Date: Thu, 07 May 2009 11:03:21 -0400
-> To: jj33@g3.example.net
-> From: jj33@g3.example.net
-> Subject: test Thu, 07 May 2009 11:03:21 -0400
-> X-Mailer: swaks v20070921.0-dev jetmore.org/john/code/#swaks
->
-> This is a test mailing
->
-> .
<- 250 OK id=KJA4HL-0006M6-8T
-> QUIT
<- 221 home.example.net closing connection
=== Connection closed with remote host.
Run Code Online (Sandbox Code Playgroud)
“MAIL FROM:”行定义了 SMTP 信封发件人,而 From: 在消息 DATA 中定义。有一些方法可以防止这种情况发生,但它们是在邮件服务器逻辑中定义的,而不是在协议本身中定义的。
例如,我作为邮件提供商,可能要求用户使用 user@domain 类型的用户名进行身份验证。然后我的邮件服务器可能要求他们发送的任何邮件都有一个信封发件人和一个发件人:与他们身份验证的用户相匹配的标头。DKIM 和 SPF 等其他技术也可以在该领域提供帮助。
这里有几个不同的事情需要考虑。如果您只想显示不同的姓名或电子邮件地址,请将邮件的“发件人”标题(邮件发件人地址)设置为显示名称在括号中的电子邮件地址,如下所示:
来自:乔示例 <joe@example.com>
请记住,消息标题中的“发件人”行仅用于显示目的。实际路由是由 SMTP 信封地址完成的。这是 SMTP 服务器实际用于在服务器之间传输消息的内容。这可能与消息“来自”标头不同。如果您有自定义 SMTP 引擎,只需让它在 SMTP 信封中使用一个地址,并在实际邮件的“发件人”标头中使用不同的地址。
您可能出于多种正当理由想要这样做,但请避免出于恶意目的。
请注意,可以在RFC 5322 - A.2.1 中找到正确的语法示例
归档时间: |
|
查看次数: |
27159 次 |
最近记录: |