python-3.x - 尝试 exec create_connection func 的 SMTP 问题
问题描述
我正在尝试 dockerize psono 密码管理器。
该解决方案有一个 SMTP 服务器,用于从注册用户发送验证邮件。
当执行提供 psono 服务器的 sendtestmail 函数时,他返回如下输出。
python3 ./psono/manage.py sendtestmail something@something.com
Traceback (most recent call last):
File "./psono/manage.py", line 17, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.6/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.6/site-packages/django/core/management/__init__.py", line 375, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python3.6/site-packages/django/core/management/base.py", line 323, in run_from_argv
self.execute(*args, **cmd_options)
File "/usr/local/lib/python3.6/site-packages/django/core/management/base.py", line 364, in execute
output = self.handle(*args, **options)
File "/root/psono/restapi/management/commands/sendtestmail.py", line 21, in handle
html_message=content,
File "/usr/local/lib/python3.6/site-packages/django/core/mail/__init__.py", line 60, in send_mail
return mail.send()
File "/usr/local/lib/python3.6/site-packages/django/core/mail/message.py", line 291, in send
return self.get_connection(fail_silently).send_messages([self])
File "/usr/local/lib/python3.6/site-packages/django/core/mail/backends/smtp.py", line 103, in send_messages
new_conn_created = self.open()
File "/usr/local/lib/python3.6/site-packages/django/core/mail/backends/smtp.py", line 63, in open
self.connection = self.connection_class(self.host, self.port, **connection_params)
File "/usr/local/lib/python3.6/smtplib.py", line 251, in __init__
(code, msg) = self.connect(host, port)
File "/usr/local/lib/python3.6/smtplib.py", line 336, in connect
self.sock = self._get_socket(host, port, self.timeout)
File "/usr/local/lib/python3.6/smtplib.py", line 307, in _get_socket
self.source_address)
File "/usr/local/lib/python3.6/socket.py", line 724, in create_connection
raise err
File "/usr/local/lib/python3.6/socket.py", line 713, in create_connection
sock.connect(sa)
OSError: [Errno 99] Address not available
我知道不执行与 SMTP 服务器的连接,但不知道问题出在哪里。
存在任何调试方法吗?
执行 netsat 命令只查看 http 服务器监听,但看不到任何 smtp 服务器。
谢谢你的帮助!
解决方案
您是否在 settings.yaml 中定义了 SMTP 详细信息?
如果没有,请尝试在 Psono 服务器中编辑 /root/.psono_server/settings.yaml 并将其指向任何 SMTP 服务器。
然后运行电子邮件测试,看看是否有效。
./psono/manage.py sendtestmail yourremail@yourdomain.com
PS SMTP 身份验证不是必需的,在我的情况下,我只是指向我的内部 SMTP 服务器并且它有效。
推荐阅读
- azure-devops - 无法从服务可执行文件路径 VisualStudioRemoteDeployer.exe 安装“VisualStudioRemoteDeployer”
- php - 如何使用 doxygen 创建公共网络服务器 api 文档?
- python-3.x - 如何为图像 vk 添加描述?
- reporting-services - SSRS:“包含错误:[BC302205] 预期语句结束。”
- vmware - 打开虚拟机时出错。vmx 文件已损坏
- wordpress - How to fix Gutenberg's Convert to Blocks?
- php - 如何在yii2的控制器动作中使用return而不是echo
- elasticsearch - How to use standard tokenizer with preserve_original?
- spring-boot - Springboot + Drools, java.lang.RuntimeException: Illegal class for global
- azure - No SnapshotStart detected. Might need more exceptions to trigger snapshot collector