问题描述
我使用的是 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,**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,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],kwargs)
File "/opt/odoo14/odoo/odoo/api.py",line 396,in call_kw
result = _call_kw_multi(method,model,line 383,in _call_kw_multi
result = method(recs,**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
为什么服务器断开连接,我该如何解决?
解决方法
这个错误是因为要么你必须使用connect()函数, 转到文档 https://docs.python.org/3/library/smtplib.html#smtplib.SMTP.connect
或者你还没有使用过 starttls() 函数。 如果这两个都正确完成,那么错误可能是因为函数序列可能是错误的。在使用服务器的任何功能之前,请检查连接是否关闭。