python 2.7でメールを送信するためにsmtplibを使用しようとしています。以下のコードはかなり単純です:
import smtplib
def main(argv=None):
sender = '[email protected]'
receivers = ['[email protected]']
message = """
This is a test e-mail message.
"""
smtpObj = smtplib.SMTP('[email protected]',25)
smtpObj.login('abc', 'pwd')
smtpObj.sendmail(sender, receivers, message)
print "Successfully sent email"
if __name__ == '__main__':
main()
次のコードを実行すると、この例外が発生し続けます。
smtplib.SMTPAuthenticationError:(535、 '5.7.3 Authentication unsuccessful')。
親切なアドバイス。
おかげで、
実際、pythonコンソールで同じステートメントを実行してみたところ、パスワードが正しくなく、文字エンコーディングが異なるためであることがわかりました。
他のすべてのユーザーは、コピーして貼り付けないでください
同じ問題がありました。
2つのオプション、
変更してみてください:
smtpObj = smtplib.SMTP('[email protected]',25)
に:
smtpObj = smtplib.SMTP('[email protected]',587)
他のオプションはあなたのログインが正しくないということです。私の場合、交換を使用していて、ログイン名はメールアドレスではなく、ユーザー名だけです
Exchangeサーバーに使用しているコードは次のとおりです。
import smtplib
def sendmail():
subject = 'message subject'
to = '[email protected]'
sender = 'bjorn@***.nl'
smtpserver = smtplib.SMTP("mail.mymailserver.nl",587)
user = 'myussername'
password = 'mypassword'
smtpserver.ehlo()
smtpserver.starttls()
smtpserver.ehlo
smtpserver.login(user, password)
header = 'To:' + to + '\n' + 'From: ' + sender + '\n' + 'Subject:' + subject + '\n'
message = header + '\n This is my message'
smtpserver.sendmail(sender, to, message)
smtpserver.close()
この問題の理由は、パスワードがメールボックスのログインパスワードではなく、クライアント認証コードである必要があるためです。
認証情報を再確認した場合、この問題はGmailにあります。それを解決するには、次の手順を実行できます。
1. IMAPおよび/またはPOP3を有効にします。
1. Go to the "Settings", e.g. click on the "Gears" icon and select "Settings". 2. Click on "Forwarding and POP/IMAP". 3. Enable "IMAP Access" and/or "POP Download"
1. Login with your gmail account and find "Allow less secure apps:" from [Here][1] 2. Google manages security with your gmail account. You need to turn on "Allow less secure apps:" and you will receive mail in your gmail account. [1]: https://myaccount.google.com/security#activity