尝试伪造电子邮件地址

3

我相信这个问题已经被问过了,但是我找不到任何方法让它工作。

我正在试图向客户发送跟进电子邮件,但我想欺骗电子邮件地址,使发件人地址为我的同事。我在网上读到过,头部中的发件人地址只是一个可以编辑的文本字段,但我仍然无法发送电子邮件。

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 成为用户名的别名。

当您运行该程序时会发生什么? - Robᵩ
1
可以展示一些关于“我仍然无法发送电子邮件”的错误信息或更多细节吗?sendmail()函数是否正常工作,但接收者没有收到邮件?还是根本就不起作用? - Chong
我知道如果要从Gmail帐户发送电子邮件,必须“允许不安全的应用程序”。我猜想如果要从Outlook帐户发送电子邮件,也必须进行某些设置。 - Sash Sinha
1个回答

7
非常简短的版本:这是行不通的。
从前,你所要求的事情是有可能实现的。在互联网还很小而垃圾邮件不存在的时代,接收服务器会相信你。你可以连接到mail.example.com,并声称你是以someone@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,因为你缺少这些内容。因此,它可能会将你的邮件标记为垃圾邮件,将其反弹回去,甚至接受然后完全丢弃它。
你可以通过更改代码来解决问题(1),但由于问题(2),这样做没有什么意义。
*我不在Gmail团队工作。我根据有关现代电子邮件服务器通常如何配置的公共信息猜测Gmail会如何回应这个问题。你的情况可能有所不同。

1
我本来就担心这个问题。我只是把邮件发送到Gmail来测试代码是否有效。 - SVill
1
因为这个问题在相关问题中出现了,也许需要强调这是消费者电子邮件基础设施的常见限制。一旦您拥有自己的电子邮件服务器并且声誉良好,从黑暗的1990年代开始变得可能的各种诡计就会再次出现。 - tripleee
@triplee:首先获得“良好声誉”的方法是不要做这种事情。最终,有人会注意到并将您的域名列入垃圾邮件列表,通常几乎没有正当程序或提前警告。 - Kevin
@Kevin 当然可以;但这都是统计学的游戏。即使有一些不好的客户,大型运营商仍然可以保持良好的声誉。 - tripleee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接