小小程序猿可笑可笑 2023-05-12 11:17 采纳率: 33.3%
浏览 21

ODOO15邮件发送时附件怎么去除掉?(语言-python)

业务中需要发送提醒邮件,但是发送的时候邮件里面总是带附件,试了各种参数都去不掉,望各位不吝赐教。
一下是部分发送代码

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)

img

  • 写回答

2条回答 默认 最新

  • 阿里嘎多学长 2023-05-12 14:25
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:

    可以使用Odoo提供的mail.compose.message模块来发送邮件,并在该模块中设置attachment_ids参数为空列表即可去掉邮件中的附件。具体操作步骤如下:

    1. 导入mail.compose.message模块
    from odoo.addons.mail.models.mail_template import mail_template
    
    1. 获取mail.compose.message模块,并设置attachment_ids参数为空列表
    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
    

    注意,这里只是一个示例代码,具体参数需要根据实际情况进行修改。

    评论

报告相同问题?

问题事件

  • 修改了问题 5月12日
  • 创建了问题 5月12日

悬赏问题

  • ¥15 神经网络模型一直不能上GPU
  • ¥15 苍穹外卖拦截器token为null
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵
  • ¥15 券商软件上市公司信息获取问题
  • ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
  • ¥15 Android studio AVD启动不了
  • ¥15 陆空双模式无人机怎么做
  • ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关
  • ¥15 C#中的编译平台的区别影响