2017-01-20 4 views
0

私は電子メール通知を送信するPython関数を持っています。自分のローカルSMTPサーバで認証するためのログインコールを含めましたが、あなたのIPがPBLにあるため '553メールが拒否されました'というメールが返送されています。 https://www.spamhaus.org/pblをさらに読むと、明らかに私は電子メールの送信を妨げられていないことがわかります。私は単に最初に認証する必要があります。Pythonを使用して認証された電子メールを送信するには?

パスワードをプレーンテキストとして送信しないように、base64エンコードを試しています。

私もPysaslライブラリを見てきましたが、SMTPサーバーでの認証にどのように使用するのか少し不明です。

base64エンコーディング、pysaslライブラリ、または正しい認証要件を満たすためのより良い方法が正しく使用されているかどうかについての指針はありますか?

私のコードは以下の通りです。

def emailNotify(self,userid): 
    SMTPserver = 'localhost' 
    sender = '***' # blanked 
    username = '***' # blanked 
    receiver = '***' # blanked 
    pwd = '***' # blanked 
    text_subtype = 'plain' 

    msg = 'requested data was posted to dashboard for '+userid 

    subject = 'confirmation of POST\'d data for '+userid 

    try: 
     msg = MIMEText(msg, text_subtype) 
     msg['Subject'] = subject 
     msg['From'] = sender 

     conn = smtplib.SMTP(SMTPserver) 
     conn.login(username, pwd) 
     try: 
      conn.sendmail(sender, receiver, msg.as_string()) 
     finally: 
      conn.quit() 
    except: 
     print('message sending failed') 

ありがとうございます。

+1

問題はなく、あなたのPythonコードだけSMTPサーバとその設定することができます - 他のサーバーは、彼らので、スパムを送信など偽のサーバーにそれらを扱うことあなたのサーバーからのメールを拒否します。あなたのPythonコードをGmailのような他のサーバーのアカウントで試してみてください。おそらくうまくいくでしょう。 – furas

+0

電子メールが返されている理由は、プレーンテキストのパスワードを送信していて、自分のIPがボランタリーリストのように見えるPBL(ポリシーブロックリスト)にあるからです。 SBLは、私のIPが入っていないスパムブロックリストです。私は、このパスワードを暗号化またはハッシュする方法を探しています。 – galtech

+0

*ローカルのSMTPサーバで認証するためのログインコールを含めましたが、電子メールには '... *。あなたは* local *サーバと何を呼びますか? 1つはローカルマシン(localhost)で動作していますか?はい** **あなたはそれがどのように設定されているか知っている必要があります... –

答えて

0

あなたがメールを送信するためのプログラムを構築するための2つの方法があります。

  • は防弾ソリューション構築:

    • をその機能
    • がより良いものを選ぶようアナウンス何サーバーを分析あなたの要件を満たす
    • その認証方法を使用
    • 実際に送信メール

    は単にそれはあなたにも、サーバーが返す(奇妙なことができる)と、すべての様々な認証方法は、カスタムを使用

  • TLS

    で話していないものを読み込みと復号化するためのコードを実装しなければならないことを意味します接続方法は、

    • を介して手動で最初のそれは
    • テストをサポートするために宣言するかを知るために、サーバのドキュメントを読むそのサーバーに適応します対話的なPythonセッションで単なるtelnet接続(ここでは十分な空きがありますが、好きなPythonシェルを選ぶことができます)
    • ちょうどあなたがテストした方法を慎重にプログラムしてください。私にとってとして

    IMHOはるかに簡単... ​​

関連する問題