Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 如何使用密件抄送将邮件发送给Odoo 8中的某些收件人?_Python 2.7_Email_Gmail_Openerp_Odoo 8 - Fatal编程技术网

Python 2.7 如何使用密件抄送将邮件发送给Odoo 8中的某些收件人?

Python 2.7 如何使用密件抄送将邮件发送给Odoo 8中的某些收件人?,python-2.7,email,gmail,openerp,odoo-8,Python 2.7,Email,Gmail,Openerp,Odoo 8,我创建了一个模块,用于向特定用户发送盲拷贝。为此,我只继承了一些模型并修改了几行: 模型电子邮件.模板 我添加了下一个字段: email_bcc = fields.Char(string='Bcc', help='Blind carbon copy message recipients') 我修改了以下方法: 生成\u电子邮件\u批,以修改以下行: fields = ['subject', 'body_html', 'email_from', '

我创建了一个模块,用于向特定用户发送盲拷贝。为此,我只继承了一些模型并修改了几行:

模型电子邮件.模板

我添加了下一个字段:

email_bcc = fields.Char(string='Bcc',
                        help='Blind carbon copy message recipients')
我修改了以下方法:

生成\u电子邮件\u批,以修改以下行:

fields = ['subject', 'body_html', 'email_from', 'email_to', 'partner_to', 'email_cc', 'reply_to']
mails = tools.email_split(values.pop('email_to', '')) + tools.email_split(values.pop('email_cc', ''))
把它变成下一个:

fields = ['subject', 'body_html', 'email_from', 'email_to', 'partner_to', 'email_cc', 'email_bcc', 'reply_to']
mails = tools.email_split(values.pop('email_to', '')) + tools.email_split(values.pop('email_cc', '')) + tools.email_split(values.pop('email_bcc', ''))
msg = ir_mail_server.build_email(
    email_from=mail.email_from,
    email_to=email.get('email_to'),
    subject=email.get('subject'),
    body=email.get('body'),
    body_alternative=email.get('body_alternative'),
    email_cc=tools.email_split(mail.email_cc),
    email_bcc=tools.email_split(mail.email_bcc),
    reply_to=mail.reply_to,
    attachments=attachments,
    message_id=mail.message_id,
    references=mail.references,
    object_id=mail.res_id and ('%s-%s' % (mail.res_id, mail.model)),
    subtype='html',
    subtype_alternative='plain',
    headers=headers
)
生成\u收件人\u批,以修改以下行:

fields = ['subject', 'body_html', 'email_from', 'email_to', 'partner_to', 'email_cc', 'reply_to']
mails = tools.email_split(values.pop('email_to', '')) + tools.email_split(values.pop('email_cc', ''))
把它变成下一个:

fields = ['subject', 'body_html', 'email_from', 'email_to', 'partner_to', 'email_cc', 'email_bcc', 'reply_to']
mails = tools.email_split(values.pop('email_to', '')) + tools.email_split(values.pop('email_cc', '')) + tools.email_split(values.pop('email_bcc', ''))
msg = ir_mail_server.build_email(
    email_from=mail.email_from,
    email_to=email.get('email_to'),
    subject=email.get('subject'),
    body=email.get('body'),
    body_alternative=email.get('body_alternative'),
    email_cc=tools.email_split(mail.email_cc),
    email_bcc=tools.email_split(mail.email_bcc),
    reply_to=mail.reply_to,
    attachments=attachments,
    message_id=mail.message_id,
    references=mail.references,
    object_id=mail.res_id and ('%s-%s' % (mail.res_id, mail.model)),
    subtype='html',
    subtype_alternative='plain',
    headers=headers
)
Model mail.mail

我还添加了一个字段:

email_bcc = fields.Char(string='Bcc',
                        help='Blind carbon copy message recipients')
并修改了方法
send
,以修改此行:

msg = ir_mail_server.build_email(
    email_from=mail.email_from,
    email_to=email.get('email_to'),
    subject=email.get('subject'),
    body=email.get('body'),
    body_alternative=email.get('body_alternative'),
    email_cc=tools.email_split(mail.email_cc),
    reply_to=mail.reply_to,
    attachments=attachments,
    message_id=mail.message_id,
    references=mail.references,
    object_id=mail.res_id and ('%s-%s' % (mail.res_id, mail.model)),
    subtype='html',
    subtype_alternative='plain',
    headers=headers
)
把它变成下一个:

fields = ['subject', 'body_html', 'email_from', 'email_to', 'partner_to', 'email_cc', 'email_bcc', 'reply_to']
mails = tools.email_split(values.pop('email_to', '')) + tools.email_split(values.pop('email_cc', '')) + tools.email_split(values.pop('email_bcc', ''))
msg = ir_mail_server.build_email(
    email_from=mail.email_from,
    email_to=email.get('email_to'),
    subject=email.get('subject'),
    body=email.get('body'),
    body_alternative=email.get('body_alternative'),
    email_cc=tools.email_split(mail.email_cc),
    email_bcc=tools.email_split(mail.email_bcc),
    reply_to=mail.reply_to,
    attachments=attachments,
    message_id=mail.message_id,
    references=mail.references,
    object_id=mail.res_id and ('%s-%s' % (mail.res_id, mail.model)),
    subtype='html',
    subtype_alternative='plain',
    headers=headers
)
在这两个模型中,我完全覆盖了这些方法(我无法找到用超级链接修改它们的方法)

问题

我创建了一个电子邮件模板来检查
email\u bcc
,我从code调用
email的
send\u mail
方法。模板

mails_sent &= et_pool.send_mail(
    self.env.cr, 1, template.id,
    user.id, force_send=True, context=ctx
)
首先,在发送邮件时,我在日志中看到以下错误:

openerp.addons.email_template.email_template:无法使用值{'format_tz':at 0x7f170051a8c0>,'ctx':{'lang':'es_es','tz':'Europe/Madrid','search_default_my_sale_orders_filter':1,'params':{'action':318},'uid','1},'user':res users(1,),'object':res users(2,)}

然而,邮件的发送是正确的。但令人惊讶的事情总是在发生,我举了一个例子让你更好地理解:

我的发送邮件服务器配置为从地址sender@gmail.com。电子邮件模板的地址为to@gmail.com
email\u to
字段中的,以及地址bcc@gmail.com
email\u bcc
字段中

发送电子邮件后,如果我登录Google帐户to@gmail.com,然后我进入收件箱,我可以看到电子邮件,但我可以阅读它sender@gmail.com发送了电子邮件,邮件被发送给了我,还有一份复印件被发送给了我bcc@gmail.com

这怎么可能?我的模块似乎运行良好,并以密件抄送方式将电子邮件发送至bcc@gmail.com,但为什么要使用to@gmail.com所有者可以看到这一事实吗

有人能帮我吗

如果有人对检查模块感兴趣,请点击此处:


它的名字是mail\u bcc

我最近也遇到了同样的问题,我认为这不是模块的错,而是谷歌的SMTP服务器(我想你配置了一个是因为@gmail.com地址)。当我从GMail切换到我们公司的邮件服务器时,密件抄送字段被正确处理,因此邮件被发送到密件抄送收件人,但收件人和抄送中的人看不到该邮件。

谢谢您的回答!正如您所写,我使用谷歌的SMTP服务器作为发送邮件服务器。哪一个可能是问题?没错。我没有改变代码中的任何内容(使用email_cc_bcc模块,但其行为与您描述的相同)。也许可以在GMail帐户的设置中配置它。您好,我正在尝试做同样的事情,用bcc发送消息,我使用了此代码,但是我没有收到任何密件抄送邮件。我正在使用Gmail SMTPI。我面临着同样的问题,我该如何解决这个问题@forvasI还没有解决它:/I我也被困住了。