私は電子メール通知を送信する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')
ありがとうございます。
問題はなく、あなたのPythonコードだけSMTPサーバとその設定することができます - 他のサーバーは、彼らので、スパムを送信など偽のサーバーにそれらを扱うことあなたのサーバーからのメールを拒否します。あなたのPythonコードをGmailのような他のサーバーのアカウントで試してみてください。おそらくうまくいくでしょう。 – furas
電子メールが返されている理由は、プレーンテキストのパスワードを送信していて、自分のIPがボランタリーリストのように見えるPBL(ポリシーブロックリスト)にあるからです。 SBLは、私のIPが入っていないスパムブロックリストです。私は、このパスワードを暗号化またはハッシュする方法を探しています。 – galtech
*ローカルのSMTPサーバで認証するためのログインコールを含めましたが、電子メールには '... *。あなたは* local *サーバと何を呼びますか? 1つはローカルマシン(localhost)で動作していますか?はい** **あなたはそれがどのように設定されているか知っている必要があります... –