业务中需要发送提醒邮件,但是发送的时候邮件里面总是带附件,试了各种参数都去不掉,望各位不吝赐教。
一下是部分发送代码
email_values = {
'recipient_ids': [],
'partner_ids': [],
'scheduled_date': False,
}
for email in mail_list:
email_values['email_cc'] = False
email_values['email_to'] = email
user_id = self.env['res.users'].search([('login', '=', 'admin')])
template = self.env.ref('dependency_check.loophole_summary_mail_template').with_context(
loophole_data=loophole_data)
template.send_mail(user_id.id, force_send=True, email_values=email_values)
以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:
可以使用Odoo提供的mail.compose.message模块来发送邮件,并在该模块中设置attachment_ids参数为空列表即可去掉邮件中的附件。具体操作步骤如下:
from odoo.addons.mail.models.mail_template import mail_template
mail_values = {
'subject': '邮件主题',
'body_html': '邮件正文',
'email_from': '发件人邮箱',
'email_to': '收件人邮箱',
'attachment_ids': []
}
mail_compose_message = self.env['mail.compose.message'].create(mail_values)
mail_compose_message.send_mail()
其中,mail_values为邮件相关的参数,attachment_ids为空列表即可去掉邮件中的附件。send_mail()方法会发送邮件。
完整代码示例:
from odoo import models
class MailTemplate(models.AbstractModel):
_inherit = 'mail.template'
def send_mail(self, res_id, force_send=False, raise_exception=False, email_values=None, notif_layout=False):
# 获取mail.compose.message模块
mail_compose_message = self.env['mail.compose.message'].with_context({
'default_model': self.model,
'default_res_id': res_id,
'default_use_template': bool(self.id),
'default_template_id': self.id,
'default_composition_mode': 'mass_mail',
})
# 设置邮件参数
mail_values = {
'subject': '邮件主题',
'body_html': '邮件正文',
'email_from': '发件人邮箱',
'email_to': '收件人邮箱',
'attachment_ids': []
}
# 发送邮件
mail_compose_message = mail_compose_message.with_context(notif_layout=notif_layout)
mail_compose_message.write(mail_values)
mail_compose_message.send_mail()
return True
注意,这里只是一个示例代码,具体参数需要根据实际情况进行修改。
pdf载入时提示
PDF.js v? (build: ?)
信息:stream must have data