diff --git a/trytond/trytond/sendmail.py b/trytond/trytond/sendmail.py index 883c5f48d5..43c66456af 100644 --- a/trytond/trytond/sendmail.py +++ b/trytond/trytond/sendmail.py @@ -45,6 +45,14 @@ def sendmail(from_addr, to_addrs, msg, server=None, strict=False): time.sleep(0.02 * (retry - count)) try: senderrs = server.sendmail(from_addr, to_addrs, msg.as_string()) + except smtplib.SMTPServerDisconnected: + if count: + server = get_smtp_server(strict=strict) + if server: + continue + if strict: + raise + logger.error('fail to send email', exc_info=True) except smtplib.SMTPResponseException as e: if count and 400 <= e.smtp_code <= 499 and hasattr(server, 'uri'): server.quit()