79ef03d4cc07a7e75eba2ca0f9231d841ecf7b8e
smtplib.SMTP API calls such as .sendmail() or .login() make sure on their first line that this command is sent, by calling .ehlo_or_helo_if_needed(). However, test_smtp_connection() does not use SMTP.sendmail() to simulate sending email, or the email would really be sent. Instead it uses the low-level API SMTP.mail() which does not make sure that HELO was sent. The connection test could be fixed by ensuring that this command was sent to the server in the test method. However, this could lead to inconsistent cases where the connection test passes whereas another usage in the code fails because the command was not sent. For example, someone could use the low-level API for some reason. EHLO could have already been sent because if authentication is enabled smtplib.SMTP.login() calls ehlo_or_helo_if_needed(). Therefore it is correct to call it ourselves at the end of our connect() method. STARTTLS sends a first EHLO, negociates the encryption, and leaves the state without the second EHLO, which should still be sent to the server, as stated by RFC 3207, in section "4.2 Result of the STARTTLS Command". https://www.ietf.org/rfc/rfc3207.txt closes odoo/odoo#34550 Signed-off-by: Julien Legros (jle) <jle@odoo.com>
…
…
…
…
…
…
…
Odoo
Odoo is a suite of web based open source business apps.
The main Odoo Apps include an Open Source CRM, Website Builder, eCommerce, Warehouse Management, Project Management, Billing & Accounting, Point of Sale, Human Resources, Marketing, Manufacturing, Purchase Management, ...
Odoo Apps can be used as stand-alone applications, but they also integrate seamlessly so you get a full-featured Open Source ERP when you install several Apps.
Getting started with Odoo
For a standard installation please follow the Setup instructions from the documentation.
Then follow the developer tutorials
Languages
Python
49.6%
JavaScript
47.8%
SCSS
2%
CSS
0.3%
HTML
0.2%