簡體   English   中英

安排異步電子郵件作業失敗,並顯示錯誤SMTPAuthenticationError:(535,“ 5.7.3身份驗證失敗”)

[英]scheduling an async email job fails with error SMTPAuthenticationError: (535, '5.7.3 Authentication unsuccessful')

我正在嘗試安排異步電子郵件作業。 我正在使用django-rq作為排隊機制。 我已經嘗試了許多修復程序,例如更改密碼,確保密碼正確等。我可以通過REPL手動發送SMTP。

更新#1:據我所知,工作人員正在正確地獲取設置。 作業正確選擇了settings.DEFAULT_FROM_EMAIL的正確值,並將正確的電子郵件地址設置為send_mail的arg。

以下代碼成功運行(無django-rq):

send_mail(
    newClaim.linkedOffer.commsPromoHeadline,
    msg_plain,
    settings.DEFAULT_FROM_EMAIL,
    [newRecipient.email],
    html_message=msg_html,
)

而以下代碼會生成SMTP身份驗證錯誤(回溯自下而下):

django_rq.enqueue(
   send_mail,
   newClaim.linkedOffer.commsPromoHeadline,
   msg_plain,
   settings.DEFAULT_FROM_EMAIL,
   [newRecipient.email],
   html_message=msg_html,
   )

追溯:

Traceback (most recent call last):
  File "/home/user1/webapps/dev_django_platform/ENV/lib/python2.7/site-packages/rq/worker.py", line 568, in perform_job
    rv = job.perform()
  File "/home/user1/webapps/dev_django_platform/ENV/lib/python2.7/site-packages/rq/job.py", line 495, in perform
    self._result = self.func(*self.args, **self.kwargs)
  File "/home/user1/webapps/dev_django_platform/lib/python2.7/Django-1.7.7-py2.7.egg/django/core/mail/__init__.py", line 62, in send_mail
    return mail.send()
  File "/home/user1/webapps/dev_django_platform/lib/python2.7/Django-1.7.7-py2.7.egg/django/core/mail/message.py", line 286, in send
    return self.get_connection(fail_silently).send_messages([self])
  File "/home/user1/webapps/dev_django_platform/lib/python2.7/Django-1.7.7-py2.7.egg/django/core/mail/backends/smtp.py", line 92, in send_messages
    new_conn_created = self.open()
  File "/home/user1/webapps/dev_django_platform/lib/python2.7/Django-1.7.7-py2.7.egg/django/core/mail/backends/smtp.py", line 59, in open
    self.connection.login(self.username, self.password)
  File "/usr/local/lib/python2.7/smtplib.py", line 622, in login
    raise SMTPAuthenticationError(code, resp)
SMTPAuthenticationError: (535, '5.7.3 Authentication unsuccessful')

為什么會引發異常,我該如何解決?

我的假設是,排隊的任務在單獨的工作人員環境上運行。 在Django內部, send_mail函數知道從何處查找Auth詳細信息。 但是在工作人員內部,找不到它們,因為這是一個單獨的過程。

您需要編寫不依賴Django的自定義send_mail函數來提供設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM