[FIX] mass_mailing: fixed email sending

bzr revid: tde@openerp.com-20140415113944-hjwjc2lh4ydzugr1
This commit is contained in:
Thibault Delavallée 2014-04-15 13:39:44 +02:00
parent 4aa717b695
commit ea2e59f86b
1 changed files with 5 additions and 10 deletions

View File

@ -2,13 +2,12 @@
from datetime import datetime
from dateutil import relativedelta
import random
import json
import random
import urllib
import urlparse
from openerp import tools
from openerp.exceptions import Warning
from openerp.tools.safe_eval import safe_eval as eval
from openerp.tools.translate import _
from openerp.osv import osv, fields
@ -537,15 +536,13 @@ class MassMailing(osv.Model):
def get_recipients(self, cr, uid, mailing, context=None):
domain = eval(mailing.mailing_domain)
# self.pool['mail.mass_mailing.list'].get_global_domain(
# cr, uid, [l.id for l in mailing.contact_list_ids], context=context
# )[mailing.mailing_model]
res_ids = self.pool[mailing.mailing_model].search(cr, uid, domain, context=context)
# randomly choose a fragment
if mailing.contact_ab_pc < 100:
topick = mailing.contact_ab_nbr
if mailing.mass_mailing_campaign_id and mailing.ab_testing:
contact_nbr = self.pool[mailing.mailing_model].search(cr, uid, domain, count=True, context=context)
topick = int(contact_nbr / 100.0 * mailing.contact_ab_pc)
if mailing.mass_mailing_campaign_id and mailing.mass_mailing_campaign_id.unique_ab_testing:
already_mailed = self.pool['mail.mass_mailing.campaign'].get_recipients(cr, uid, [mailing.mass_mailing_campaign_id.id], context=context)[mailing.mass_mailing_campaign_id.id]
else:
already_mailed = set([])
@ -568,8 +565,6 @@ class MassMailing(osv.Model):
def send_mail(self, cr, uid, ids, context=None):
author_id = self.pool['res.users'].browse(cr, uid, uid, context=context).partner_id.id
for mailing in self.browse(cr, uid, ids, context=context):
if not mailing.contact_nbr:
raise Warning('Please select recipients.')
# instantiate an email composer + send emails
res_ids = self.get_recipients(cr, uid, mailing, context=context)
comp_ctx = dict(context, active_ids=res_ids)
@ -584,7 +579,7 @@ class MassMailing(osv.Model):
'mass_mailing_id': mailing.id,
'mailing_list_ids': [(4, l.id) for l in mailing.contact_list_ids],
}
if mailing.reply_specified:
if mailing.reply_to_mode == 'email':
composer_values['reply_to'] = mailing.reply_to
composer_id = self.pool['mail.compose.message'].create(cr, uid, composer_values, context=comp_ctx)
self.pool['mail.compose.message'].send_mail(cr, uid, [composer_id], context=comp_ctx)