-
Notifications
You must be signed in to change notification settings - Fork 27
/
ir_mail_server.py
58 lines (52 loc) · 2.48 KB
/
ir_mail_server.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# -*- coding: utf-8 -*-
##############################################################################
#
# This file is part of email_separator,
# an Odoo module.
#
# Authors: ACSONE SA/NV (<http://acsone.eu>)
#
# email_separator is free software:
# you can redistribute it and/or modify it under the terms of the GNU
# Affero General Public License as published by the Free Software
# Foundation,either version 3 of the License, or (at your option) any
# later version.
#
# email_separator is distributed
# in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with email_separator.
# If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp.osv import orm
class ir_mail_server(orm.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):
bounce_alias = self.pool['ir.config_parameter'].get_param(
cr, uid, 'mail.bounce.alias', context=context)
catchall_domain = self.pool['ir.config_parameter'].get_param(
cr, uid, 'mail.catchall.domain', context=context)
rpath = message['Return-Path']
if bounce_alias and catchall_domain and rpath:
if '%s-' % bounce_alias in rpath.split('@', 1)[0]:
# Replace the first dash occurrence in the "identity" part of
# the return path (i.e. the bounce email address)
# by a plus sign, e.g.:
# catchall-bounces-543-kremlin@vladimir-putin.ru
# => catchall-bounces+543-kremlin@vladimir-putin.ru
rpath = rpath.replace(
'%s-' % bounce_alias, '%s+' % bounce_alias, 1)
del message['Return-Path']
message['Return-Path'] = rpath
return super(ir_mail_server, self).send_email(
cr, uid, message, mail_server_id=mail_server_id,
smtp_server=smtp_server, smtp_port=smtp_port, smtp_user=smtp_user,
smtp_password=smtp_password, smtp_encryption=smtp_encryption,
smtp_debug=smtp_debug, context=context)