web-dev-qa-db-ja.com

smtplib.SMTPAuthenticationError:(535、 '5.7.3 Authentication unsuccessful')

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')。

親切なアドバイス。

おかげで、

6
Puneet Nebhani

実際、pythonコンソールで同じステートメントを実行してみたところ、パスワードが正しくなく、文字エンコーディングが異なるためであることがわかりました。

他のすべてのユーザーは、コピーして貼り付けないでください

two muppets

12
Puneet Nebhani

同じ問題がありました。

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()
1
user2433624

この問題の理由は、パスワードがメールボックスのログインパスワードではなく、クライアント認証コードである必要があるためです。

0
weiliang

認証情報を再確認した場合、この問題は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. 安全性の低いアプリにGmailへのログインを許可します。
 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
0
Devesh