qiandao icon indicating copy to clipboard operation
qiandao copied to clipboard

建议增加指定 SMTP 端口发信设置

Open avrilnoeme opened this issue 6 years ago • 2 comments

原标题:重置密码报错 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 snipaste_20181128_013732

# 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 "", line 1, in File "/tmp/pip-install-wkJ56L/pycurl/setup.py", line 913, in ext = get_extension(sys.argv, split_extension_source=split_extension_source) File "/tmp/pip-install-wkJ56L/pycurl/setup.py", line 582, in get_extension ext_config = ExtensionConfiguration(argv) File "/tmp/pip-install-wkJ56L/pycurl/setup.py", line 99, in init self.configure() File "/tmp/pip-install-wkJ56L/pycurl/setup.py", line 227, in configure_unix raise ConfigurationError(msg) main.ConfigurationError: Could not run curl-config: [Errno 2] No such file or directory ---------------------------------------- Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-wkJ56L/pycurl/

avrilnoeme avatar Nov 27 '18 18:11 avrilnoeme

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

重置密码页面不会再报错,但是还是收不到邮件,应该是端口问题。

avrilnoeme avatar Nov 27 '18 18:11 avrilnoeme

所以现在的需求是 SMTP 使用指定发信端口,谢谢。

avrilnoeme avatar Nov 27 '18 19:11 avrilnoeme