qiandao
qiandao copied to clipboard
建议增加指定 SMTP 端口发信设置
原标题:重置密码报错 no module named pycurl(已解决) 更新标题:建议增加指定SMTP 端口发信设置 服务器:GCP 服务器 OS:Ubuntu 18.04.1 LTS Nginx:1.14.0
您好,我的服务器使用用nginx开启了tls,修改了 config.py https = bool(os.getenv('ENABLE_HTTPS', True))
和SMTP配置。
因为GCP服务器封锁了SMTP端口,需要使用2525端口,配置了mailgun服务,但是qiandao项目里不能自定义端口号( 服务器安装了Mastodon实例,使用Postfix正常发信。)。
在qiandao重置密码页面输入邮箱后报错,打开debug显示如下,麻烦指点一下谢谢。
Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/tornado/web.py", line 1510, in _execute result = method(*self.path_args, **self.path_kwargs) File "/usr/share/nginx/html/qiandao/web/handlers/login.py", line 193, in post future = self.send_mail(user) File "/usr/share/nginx/html/qiandao/web/handlers/login.py", line 240, in send_mail """ % (config.domain, verified_code, config.domain, verified_code), async=True) File "/usr/share/nginx/html/qiandao/libs/utils.py", line 140, in send_mail httpclient.AsyncHTTPClient.configure('tornado.curl_httpclient.CurlAsyncHTTPClient') File "/usr/local/lib/python2.7/dist-packages/tornado/httpclient.py", line 286, in configure super(AsyncHTTPClient, cls).configure(impl, **kwargs) File "/usr/local/lib/python2.7/dist-packages/tornado/util.py", line 335, in configure impl = import_object(impl) File "/usr/local/lib/python2.7/dist-packages/tornado/util.py", line 171, in import_object obj = __import__('.'.join(parts[:-1]), None, None, [parts[-1]], 0) File "/usr/local/lib/python2.7/dist-packages/tornado/curl_httpclient.py", line 24, in <module> import pycurl # type: ignore ImportError: No module named pycurl
# curl --version
curl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.0g zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3
Release-Date: 2018-01-24
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL
我尝试安装pycurl ,但是如下报错
# apt-get pip install pycurl
E: Invalid operation pip
root@mstdn:~# pip install pycurl
Collecting pycurl
Using cached https://files.pythonhosted.org/packages/e8/e4/0dbb8735407189f00b33d84122b9be52c790c7c3b25286826f4e1bdb7bde/pycurl-7.43.0.2.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "
http://pycurl.io/docs/latest/install.html#easy-install-pip 去pycurl网站找了方法也还是不行。
最终试了下如下命令
#sudo apt-get install libcurl4-openssl-dev
再使用
#sudo apt-get pip install pycurl
终于安装上了pycurl
# python -c "import pycurl; print pycurl.version"
PycURL/7.43.0.2 libcurl/7.58.0 OpenSSL/1.1.0g zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3
# python --version
Python 2.7.15rc1
重置密码页面不会再报错,但是还是收不到邮件,应该是端口问题。
所以现在的需求是 SMTP 使用指定发信端口,谢谢。