【问题标题】:Trying to spoof an email address试图欺骗电子邮件地址
【发布时间】:2017-01-20 05:41:05
【问题描述】:

我确定有人问过这个问题,但我找不到任何东西可以让我的工作。

我正在尝试向客户发送后续电子邮件,但我想伪造电子邮件地址,因此发件人地址是给我的同事的。我在网上某处读到,标题中的发件人地址只是一个可以编辑的文本字段,但我仍然无法发送电子邮件。

import smtplib

email_to = '*****@gmail.com'
username = '*******@outlook.com'
password = '*********'
other_email = '*******@outlook.com'

mail = smtplib.SMTP('Outlook.com', 25)
mail.ehlo()
mail.starttls()
mail.login(username,password)

header = ('To:' + email_to + '\n' +'From: ' + other_email + '\n'
          + 'Subject: Python Project Test\n')
message = (header +
           '\n\n This is a test message generated from a Python script. \n\n')

mail.sendmail(username, email_to, message)
mail.close()
print("Email sent successfully.")

我知道这可以做到,但有人能指出我正确的方向吗?有什么方法可以让我在发件人字段中将我的名字伪装成应该收到此邮件的电子邮件?

====================================

另外,为了完整起见,这是我得到的错误:

Traceback (most recent call last):
  File "C:\Users\*****\Desktop\email outlook.py", line 16, in <module>
    mail.sendmail(username, email_to, message)
  File "C:\Users\*****\AppData\Local\Programs\Python\Python36-32\lib\smtplib.py", line 887, in sendmail
    raise SMTPDataError(code, resp)
smtplib.SMTPDataError: (550, b'5.7.60 SMTP; Client does not have permissions to send as this sender')

我希望有办法让 other_name 成为用户名的别名。

【问题讨论】:

  • 运行该程序时会发生什么?
  • 可以显示您的错误消息或有关“我仍然无法发送电子邮件”的更多详细信息吗? sendmail() 工作正常但收件人没有收到邮件吗?或者它只是不起作用?
  • 我知道您必须“允许不太安全的应用程序”才能从这样的 gmail 帐户发送电子邮件。我想你必须做一些事情才能从 Outlook 帐户发送。

标签: python email


【解决方案1】:

非常短版:这行不通。


曾几何时,按照您的要求去做是合理的。在过去,当互联网很小并且不存在垃圾邮件时,接收服务器只会信任您。你可以连接到 mail.example.com 并说你是代表某人@example.org 发送的,example.com 会相信你。

但是那些日子已经过去了。如今,SMTP 服务器的信任度要低得多。那么让我们来看看你的方法存在的问题:

  1. 您正在尝试通过 outlook.com 路由您的电子邮件。 outlook.com 非常清楚您是username 而不是other_email。如果您想以other_email 发送电子邮件,则需要以other_email 进行身份验证。
  2. 您可以直接连接到 gmail.com,声称自己是 outlook.com,然后尝试以这种方式发送电子邮件。但 Gmail 知道您不是 outlook.com,因为您缺少 these things。因此,它可能会将您的邮件标记为垃圾邮件、将其退回,甚至* 接受它然后将其完全丢弃。

您可以通过更改代码来修复 (1),但由于 (2),没有什么意义。

* 我不在 Gmail 团队工作。我猜测 Gmail 将如何仅根据有关现代电子邮件服务器通常配置方式的公开信息对此做出响应。 YMMV。

【讨论】:

  • 我害怕那个。我将电子邮件发送到 Gmail 只是为了测试代码是否有效。
  • 因为这出现在一个相关的问题中,也许要强调这是 consumer 电子邮件基础架构的常见限制。一旦您拥有自己的声誉良好的电子邮件服务器,1990 年代黑暗的各种诡计就会再次成为可能。
  • @triplee:首先获得“良好声誉”的方法是做这种事情。最终有人会注意到您的域并将您的域列入垃圾邮件列表,通常很少有正当程序或提前警告。
  • @Kevin 当然;但这都是统计游戏。一个大运营商即使有几个坏客户也能保持良好的声誉。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-22
  • 2017-11-21
相关资源
最近更新 更多