【问题标题】:Any idea of how to spoof an email sender in python using smtplib?关于如何使用 smtplib 在 python 中欺骗电子邮件发件人的任何想法?
【发布时间】:2020-10-17 05:06:24
【问题描述】:

我又浪费了一天的时间来玩 python,我正在考虑如何在 python 中使用 smtplib 来欺骗电子邮件地址。我认为可以通过使用下面的代码来欺骗发件人地址,但它不起作用。我在 github 上看到了似乎能够真正欺骗电子邮件的项目,但是如果我要创建自己的程序来做到这一点,它究竟会如何工作?有任何想法吗?代码:

import smtplib

username = (mygmailusername)
password = (mypassword)
fakefrom = "donaldtrump@gmail.com"
toEmail = (toAddress)

server = smtplib.SMTP("smtp.gmail.com",587)
server.starttls()
server.login(username,password)
server.sendmail(fakefrom,toEmail,"this is the fbi. OPEN UP")
server.close()

【问题讨论】:

  • 原则上你的代码应该可以工作。在实践中,我怀疑大多数大型商业电子邮件提供商不会允许这样做,因为他们不想被视为帮助垃圾邮件发送者。

标签: python smtp spoofing


【解决方案1】:

大多数提供商使用发件人地址检查帐户,如果发件人地址与发件人不匹配,则不允许。如果您有一个设置框网络,请尝试在 smtp 25 端口上使用您的提供商网络 smtp 服务器而不进行身份验证,并且大多数时候可以发送邮件。但是使用这种方法,许多接收服务器会直接将此邮件标记为垃圾邮件/危险邮件。您可以直接在您的消息工具(outlook,...)中尝试,它的行为与您编写的代码相同。

【讨论】:

  • 你的意思是像telnet一样?
  • 您也可以使用 telnet smtp_server 25 rcpt from:email_sender rcpt to:email_receiver 您的文本和 .完成
【解决方案2】:

对不起,我来晚了。问题在于倒数第二行:

server.sendmail(fakefrom,toEmail,"this is the fbi. OPEN UP")

您正在尝试使用“虚假发件人”地址来实际发送您不想要的电子邮件。您只是想“欺骗”它并让收件人认为电子邮件来自不同的地址。您可以通过在消息正文中定义发件人详细信息来做到这一点。

您需要用来完成这项工作的代码是:

import smtplib

username = (mygmailusername)
password = (mypassword)

fake_from = "donaldtrump@gmail.com"
fake_name = "Donald Trump"

to_email = (toAddress)
to_name = (toName)

subject = "Bonjour"
content = "This is the fbi. OPEN UP"

message = f"From: {fake_name} <{fake_from}>\nTo: {to_name} <{to_email}>\nSubject: {subject}\n\n{content}"

server = smtplib.SMTP("smtp.gmail.com", 587)
server.starttls()
server.login(username, password)
server.sendmail(username, to_email, message.encode())
server.close()

【讨论】:

    猜你喜欢
    • 2016-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-09
    • 2011-02-12
    • 1970-01-01
    相关资源
    最近更新 更多