首页 > 解决方案 > 尝试 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 服务器。

谢谢你的帮助!

标签: python-3.xsocketssmtp

解决方案


您是否在 settings.yaml 中定义了 SMTP 详细信息?

如果没有,请尝试在 Psono 服务器中编辑 /root/.psono_server/settings.yaml 并将其指向任何 SMTP 服务器。

然后运行电子邮件测试,看看是否有效。

./psono/manage.py sendtestmail yourremail@yourdomain.com

PS SMTP 身份验证不是必需的,在我的情况下,我只是指向我的内部 SMTP 服务器并且它有效。


推荐阅读