2017-01-19 4 views
1

これが頼まれていると確信していますが、私が仕事をするために何かを見つけることができません。電子メールアドレスを偽装しようとしています

私はクライアントにフォローアップメールを送信しようとしていますが、送信元アドレスが私の同僚のためにメールアドレスをスプーフィングしたいと思います。私は、ヘッダーのFromアドレスが単純に編集可能なテキストフィールドであることをオンラインで読んだが、まだ電子メールを送信できない。

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と主張し、そのようにメールを送信してみることができます。しかし、these thingsが不足しているため、Gmailはあなたがoutlook.comではないことを知っています。だからあなたのメッセージに迷惑メールとしてフラグを立てたり、バウンスしたり、それを受け入れてから完全に破棄したりするでしょう。

あなたのコードを変更することで(1)を修正できますが、(2)のために、少しの点があります。

* Gmailチームでは動作しません。現代のメールサーバーの一般的な構成に関する公開情報だけに基づいて、Gmailがこれにどのように対応するかを推測しています。 YMMV。

+0

私はそれを恐れていました。コードが動作するかどうかをテストするためにメールをGmailに送信していました。 – SVill

関連する問題