连接超时到smtp.gmail.com从linode s连接时的服务器

2024-09-28 01:28:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我遵循科里谢弗的烧瓶教程,以建立一个基本的博客网络应用程序。当从我的本地机器上运行网站时,我可以通过flask mail发送电子邮件以重置密码。但是,在linode Ubuntu服务器上托管网站之后,当我尝试发送电子邮件时,收到一个超时错误。错误回溯是:

[2019-12-27 18:15:44,423] ERROR in app: Exception on /reset_password [POST]
Traceback (most recent call last):
  File "/home/hansen/FlaskTutorial/venv/lib/python3.7/site-packages/flask/app.py", line 2446, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/hansen/FlaskTutorial/venv/lib/python3.7/site-packages/flask/app.py", line 1951, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/hansen/FlaskTutorial/venv/lib/python3.7/site-packages/flask/app.py", line 1820, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/hansen/FlaskTutorial/venv/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/home/hansen/FlaskTutorial/venv/lib/python3.7/site-packages/flask/app.py", line 1949, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/hansen/FlaskTutorial/venv/lib/python3.7/site-packages/flask/app.py", line 1935, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/hansen/FlaskTutorial/flaskblog/users/routes.py", line 84, in reset_request
    send_reset_email(user)
  File "/home/hansen/FlaskTutorial/flaskblog/users/utils.py", line 29, in send_reset_email
    mail.send(msg)
  File "/home/hansen/FlaskTutorial/venv/lib/python3.7/site-packages/flask_mail.py", line 491, in send
    with self.connect() as connection:
  File "/home/hansen/FlaskTutorial/venv/lib/python3.7/site-packages/flask_mail.py", line 144, in __enter__
    self.host = self.configure_host()
  File "/home/hansen/FlaskTutorial/venv/lib/python3.7/site-packages/flask_mail.py", line 158, in configure_host
    host = smtplib.SMTP(self.mail.server, self.mail.port)
  File "/usr/lib/python3.7/smtplib.py", line 251, in __init__
    (code, msg) = self.connect(host, port)
  File "/usr/lib/python3.7/smtplib.py", line 336, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "/usr/lib/python3.7/smtplib.py", line 307, in _get_socket
    self.source_address)
  File "/usr/lib/python3.7/socket.py", line 727, in create_connection
    raise err
  File "/usr/lib/python3.7/socket.py", line 716, in create_connection
    sock.connect(sa)
TimeoutError: [Errno 110] Connection timed out

我试过连接到smtp.gmail.com在linux服务器上通过telnet访问服务器,并收到以下错误:

telnet smtp.gmail.com 587                                                   
Trying 2607:f8b0:400d:c03::6d...                                                                                        
Trying 209.85.201.109...                                                                                                
telnet: Unable to connect to remote host: Connection timed out        

从其他stackoverflow post(https://unix.stackexchange.com/questions/151321/cant-access-mail-server-through-smtp)来看,这可能是防火墙问题。任何帮助都将不胜感激。你知道吗


Tags: inpyselfappflaskhomevenvlib
1条回答
网友
1楼 · 发布于 2024-09-28 01:28:20

在您使用ubuntu的情况下,请尝试以下步骤来配置防火墙规则以启用smtp。你知道吗

 sudo ufw status

如果ufw状态为活跃。然后呢你可以使用ufw来配置防火墙规则。否则让它活跃起来,混淆规则。你知道吗

sudo ufw start
sudo ufw enable

配置smtp

sudo ufw default allow outgoing
sudo ufw allow smtp

如果您正在为smtp使用自定义端口

sudo ufw allow  your port/tcp  

将您的端口替换为您用于smtp的端口

相关问题 更多 >

    热门问题