簡體   English   中英

Django。 嘗試發送 email 時出現“ConnectionRefusedError: [Errno 111”

[英]Django. Getting "ConnectionRefusedError: [Errno 111" when trying to send an email

描述

我正在嘗試使用django.core.mail.send_email()發送 email 並不斷收到ConnectionRefusedError: [Errno 111] Connection refused denied 並帶有以下回溯:

Traceback (most recent call last):                                                                                                                                                                               
  File "<console>", line 1, in <module>                                                                                                                                                                          
  File "/home/EmilKadermetov/.virtualenvs/myvirtualenv/lib/python3.8/site-packages/django/core/mail/__init__.py", line 61, in send_mail                                                                          
    return mail.send()                                                                                                                                                                                           
  File "/home/EmilKadermetov/.virtualenvs/myvirtualenv/lib/python3.8/site-packages/django/core/mail/message.py", line 284, in send                                                                               
    return self.get_connection(fail_silently).send_messages([self])                                                                                                                                              
  File "/home/EmilKadermetov/.virtualenvs/myvirtualenv/lib/python3.8/site-packages/django/core/mail/backends/smtp.py", line 102, in send_messages                                                                
    new_conn_created = self.open()                                                                                                                                                                               
  File "/home/EmilKadermetov/.virtualenvs/myvirtualenv/lib/python3.8/site-packages/django/core/mail/backends/smtp.py", line 62, in open                                                                          
    self.connection = self.connection_class(self.host, self.port, **connection_params)                                                                                                                           
  File "/usr/lib/python3.8/smtplib.py", line 253, in __init__                                                                                                                                                    
    (code, msg) = self.connect(host, port)                                                                                                                                                                       
  File "/usr/lib/python3.8/smtplib.py", line 339, in connect                                                                                                                                                     
    self.sock = self._get_socket(host, port, self.timeout)                                                                                                                                                       
  File "/usr/lib/python3.8/smtplib.py", line 308, in _get_socket                                                                                                                                                 
    return socket.create_connection((host, port), timeout,                                                                                                                                                       
  File "/usr/lib/python3.8/socket.py", line 807, in create_connection                                                                                                                                            
    raise err                                                                                                                                                                                                    
  File "/usr/lib/python3.8/socket.py", line 796, in create_connection                                                                                                                                            
    sock.connect(sa)                                                                                                                                                                                             
ConnectionRefusedError: [Errno 111] Connection refused  

我在settings.py中的 SMTP 配置:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOSTS = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'my_email@gmail.com'
EMAIL_HOST_PASSWORD = 'my_passwod'

額外的

我的谷歌帳戶中的“安全性較低的應用程序訪問”已打開。
我可以通過同一台機器上的 telnet 成功連接到smtp.gmail.com
使用另一個 smtp 主機沒有任何改變。

我用:

Django3.1.6 | Python 3.8.5 | Linux 完好 20.1

它只是settings.py文件行中的一個錯字,該行指定ZC2239A92BDE29F0A9F9173193193CCC2FE00Z主持人: EMAIL_HOSTS = 'smtp.gmail.com' EMAIL_HOST = 'smtp.gmail.com' 所以 Django 使用了默認的EMAIL_HOST參數 - localhost並且連接失敗。 感謝評論中試圖幫助我的人。

它幫助我添加了settingd.py:

RECIPIENTS_EMAIL = ['manager@mysite.com']   # замените на свою почту
DEFAULT_FROM_EMAIL = 'admin@mysite.com'  # замените на свою почту
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'

暫無
暫無

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

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