summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier Dony <odo@openerp.com>2013-01-15 13:40:58 +0100
committerOlivier Dony <odo@openerp.com>2013-01-15 13:40:58 +0100
commit4eac5104619bfbb68c95cd2e4399ebf3ec558256 (patch)
treeec88ccf81851912c6c3f5c015c10d336de636957
parentae99003380372a69291bdc32e2f0df33d26451f0 (diff)
[FIX] ir.mail_server: properly handle the --smtp-ssl command-line option + map it to STARTTLS as a safer default
bzr revid: odo@openerp.com-20130115124058-81kgv0cy9jp96ln4
-rw-r--r--openerp/addons/base/ir/ir_mail_server.py9
-rw-r--r--openerp/tools/config.py2
2 files changed, 6 insertions, 5 deletions
diff --git a/openerp/addons/base/ir/ir_mail_server.py b/openerp/addons/base/ir/ir_mail_server.py
index d21e53c216d..5a3c40552f0 100644
--- a/openerp/addons/base/ir/ir_mail_server.py
+++ b/openerp/addons/base/ir/ir_mail_server.py
@@ -370,7 +370,7 @@ class ir_mail_server(osv.osv):
return msg
def send_email(self, cr, uid, message, mail_server_id=None, smtp_server=None, smtp_port=None,
- smtp_user=None, smtp_password=None, smtp_encryption='none', smtp_debug=False,
+ smtp_user=None, smtp_password=None, smtp_encryption=None, smtp_debug=False,
context=None):
"""Sends an email directly (no queuing).
@@ -388,7 +388,7 @@ class ir_mail_server(osv.osv):
extracted from the combined list of ``To``, ``CC`` and ``BCC`` headers.
:param mail_server_id: optional id of ir.mail_server to use for sending. overrides other smtp_* arguments.
:param smtp_server: optional hostname of SMTP server to use
- :param smtp_encryption: one of 'none', 'starttls' or 'ssl' (see ir.mail_server fields for explanation)
+ :param smtp_encryption: optional TLS mode, one of 'none', 'starttls' or 'ssl' (see ir.mail_server fields for explanation)
:param smtp_port: optional SMTP port, if mail_server_id is not passed
:param smtp_user: optional SMTP user, if mail_server_id is not passed
:param smtp_password: optional SMTP password to use, if mail_server_id is not passed
@@ -436,7 +436,8 @@ class ir_mail_server(osv.osv):
smtp_port = tools.config.get('smtp_port', 25) if smtp_port is None else smtp_port
smtp_user = smtp_user or tools.config.get('smtp_user')
smtp_password = smtp_password or tools.config.get('smtp_password')
-
+ if smtp_encryption is None and tools.config.get('smtp_ssl'):
+ smtp_encryption = 'starttls' # STARTTLS is the new meaning of the smtp_ssl flag as of v7.0
if not smtp_server:
raise osv.except_osv(
@@ -455,7 +456,7 @@ class ir_mail_server(osv.osv):
return message_id
try:
- smtp = self.connect(smtp_server, smtp_port, smtp_user, smtp_password, smtp_encryption, smtp_debug)
+ smtp = self.connect(smtp_server, smtp_port, smtp_user, smtp_password, smtp_encryption or False, smtp_debug)
smtp.sendmail(smtp_from, smtp_to_list, message.as_string())
finally:
try:
diff --git a/openerp/tools/config.py b/openerp/tools/config.py
index ad8f5c73b4b..71d1d015d91 100644
--- a/openerp/tools/config.py
+++ b/openerp/tools/config.py
@@ -205,7 +205,7 @@ class configmanager(object):
group.add_option('--smtp-port', dest='smtp_port', my_default=25,
help='specify the SMTP port', type="int")
group.add_option('--smtp-ssl', dest='smtp_ssl', action='store_true', my_default=False,
- help='specify the SMTP server support SSL or not')
+ help='if passed, SMTP connections will be encrypted with SSL (STARTTLS)')
group.add_option('--smtp-user', dest='smtp_user', my_default=False,
help='specify the SMTP username for sending email')
group.add_option('--smtp-password', dest='smtp_password', my_default=False,