diff --git a/mail_from_force/__init__.py b/mail_from_force/__init__.py new file mode 100644 index 00000000..a0fdc10f --- /dev/null +++ b/mail_from_force/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- +from . import models diff --git a/mail_from_force/__openerp__.py b/mail_from_force/__openerp__.py new file mode 100644 index 00000000..cc056cd5 --- /dev/null +++ b/mail_from_force/__openerp__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +{ + 'name': "Force From sender to be the Admin user", + 'author': "Daniel Reis,Odoo Community Association (OCA)", + 'summary': 'Force the header Sender and envelope From ' + 'to a fixed outgoing address.', + 'description': """ + Sends all outgoing emails from the same fixed email address. + The email address to use is configured in the + System parameter "mail.from.force". + This email is used in the email from, along with the + actual name of the user triggering the email. + + For more details on why this may be needed, see: + https://github.com/odoo/odoo/issues/3347 + """, + 'category': 'Mail', + 'version': '8.0.1.0.0', + 'license': 'AGPL-3', + 'depends': [ + 'mail', + ], +} diff --git a/mail_from_force/models/__init__.py b/mail_from_force/models/__init__.py new file mode 100644 index 00000000..f024d4e2 --- /dev/null +++ b/mail_from_force/models/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- +from . import ir_mail_server diff --git a/mail_from_force/models/ir_mail_server.py b/mail_from_force/models/ir_mail_server.py new file mode 100644 index 00000000..e69ce3f0 --- /dev/null +++ b/mail_from_force/models/ir_mail_server.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# © 2018 Daniel Reis +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + + +from openerp import models, SUPERUSER_ID + + +class MailServer(models.Model): + _inherit = 'ir.mail_server' + + 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, + context=None): + from_force = self.pool['ir.config_parameter'].get_param( + cr, SUPERUSER_ID, 'mail.from.force', context=context) + if from_force: + message['Return-Path'] = from_force + message['From'] = from_force + return super(MailServer, self).send_email( + cr, uid, message, mail_server_id, + smtp_server, smtp_port, + smtp_user, smtp_password, + smtp_encryption, smtp_debug, + context=context)