2017-01-19 94 views
1

我敢肯定,這已被問過,但我無法找到任何東西讓我的工作。試圖欺騙電子郵件地址

我試圖發送跟進電子郵件給客戶,但我想欺騙電子郵件地址,以便從該地址是我的同事。我在網上的某處看到,標題中的發件人地址只是一個可以編輯的文本字段,但我仍然無法發送電子郵件。

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的用戶名的別名。

+0

會發生什麼事,當你運行該程序? –

+1

可能會顯示類似您的錯誤消息或「我仍不能發送電子郵件」的更多詳細信息? sendmail()是否正常工作,但接收方沒有收到郵件?或者它不起作用? – Chong

+0

我知道你必須「允許安全性較低的應用程序」才能從Gmail這樣的帳戶發送電子郵件。我認爲你必須做一些事情,從一個Outlook帳戶發送。 – shash678

回答

4

簡短版本:這是行不通的。


曾幾何時,這是合理的可能做你要做的事情。在過去,當互聯網很小並且垃圾郵件不存在時,接收服務器就會信任你。你可以連接到mail.example.com,並說你是代表[email protected]發送的,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只會根據關於現代電子郵件服務器通常如何配置的公共信息來回應此問題。因人而異。

+0

我很害怕那個。我只是將電子郵件發送到Gmail,以測試代碼是否正常工作。 – SVill