Odoo 服务器错误:smtplib.SMTPServerDisconnected:请先运行 connect()
Posted
技术标签:
【中文标题】Odoo 服务器错误:smtplib.SMTPServerDisconnected:请先运行 connect()【英文标题】:Odoo Server Error: smtplib.SMTPServerDisconnected: please run connect() first 【发布时间】:2021-05-16 23:55:41 【问题描述】:我使用的是 odoo 版本 14。我已经正确设置了我的 SMTP 邮件处理程序,当我测试连接时,odoo 报告一切设置正确。
但是,当我尝试发送电子邮件时,我收到了错误消息。这是完整的错误跟踪堆栈:
Error:
Odoo Server Error
Traceback (most recent call last):
File "/opt/odoo14/odoo/odoo/addons/base/models/ir_http.py", line 237, in _dispatch
result = request.dispatch()
File "/opt/odoo14/odoo/odoo/http.py", line 683, in dispatch
result = self._call_function(**self.params)
File "/opt/odoo14/odoo/odoo/http.py", line 359, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/opt/odoo14/odoo/odoo/service/model.py", line 94, in wrapper
return f(dbname, *args, **kwargs)
File "/opt/odoo14/odoo/odoo/http.py", line 347, in checked_call
result = self.endpoint(*a, **kw)
File "/opt/odoo14/odoo/odoo/http.py", line 912, in __call__
return self.method(*args, **kw)
File "/opt/odoo14/odoo/odoo/http.py", line 531, in response_wrap
response = f(*args, **kw)
File "/opt/odoo14/odoo/addons/web/controllers/main.py", line 1381, in call_button
action = self._call_kw(model, method, args, kwargs)
File "/opt/odoo14/odoo/addons/web/controllers/main.py", line 1369, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/opt/odoo14/odoo/odoo/api.py", line 396, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "/opt/odoo14/odoo/odoo/api.py", line 383, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "/opt/odoo14/odoo/addons/auth_signup/models/res_users.py", line 205, in action_reset_password
template.send_mail(user.id, force_send=force_send, raise_exception=True)
File "/opt/odoo14/odoo/addons/mail/models/mail_template.py", line 288, in send_mail
mail.send(raise_exception=raise_exception)
File "/opt/odoo14/odoo/addons/mail/models/mail_mail.py", line 272, in send
smtp_session.quit()
File "/usr/lib/python3.8/smtplib.py", line 988, in quit
res = self.docmd("quit")
File "/usr/lib/python3.8/smtplib.py", line 424, in docmd
self.putcmd(cmd, args)
File "/usr/lib/python3.8/smtplib.py", line 371, in putcmd
self.send(str)
File "/usr/lib/python3.8/smtplib.py", line 363, in send
raise SMTPServerDisconnected('please run connect() first')
Exception
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/opt/odoo14/odoo/odoo/http.py", line 639, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/opt/odoo14/odoo/odoo/http.py", line 315, in _handle_exception
raise exception.with_traceback(None) from new_cause
smtplib.SMTPServerDisconnected: please run connect() first
为什么服务器会断开连接,我该如何解决?
【问题讨论】:
如果您能提供代码的sn-p,这样我们就可以看到代码语句的顺序,那就太好了。请不要忘记清理个人信息的代码:) 【参考方案1】:将公司电子邮件更改为我设置 smtp 服务器时使用的电子邮件对我有用(电子邮件帐户别名也适用于我)
【讨论】:
【参考方案2】:这个错误只是因为你必须使用 connect() 函数, 转到文档https://docs.python.org/3/library/smtplib.html#smtplib.SMTP.connect
或者你没有使用 starttls() 函数。 如果这两个都正确完成,那么错误可能是因为函数的顺序可能是错误的。在使用服务器的任何功能之前,请检查连接是否正在关闭。
【讨论】:
以上是关于Odoo 服务器错误:smtplib.SMTPServerDisconnected:请先运行 connect()的主要内容,如果未能解决你的问题,请参考以下文章
Odoo 服务器错误:smtplib.SMTPServerDisconnected:请先运行 connect()
odoo 12 错误 - 您无权访问所请求的资源。它要么是读保护的,要么是服务器不可读的