【问题标题】:How to send email without mail template odoo 9如何在没有邮件模板 odoo 9 的情况下发送电子邮件
【发布时间】:2017-01-28 03:21:23
【问题描述】:

我想在 odoo 9 中发送没有任何电子邮件模板的电子邮件。我已经成功设置了发送和接收邮件配置。 我的场景是管理员邮件别名作为电子邮件的发件人 这是我的模型:

class cashadvance(osv.osv):
_name = 'comben.cashadvance'
    _order = 'create_date DESC'
    _columns = {
        'user_target'               : fields.many2one('res.users', string='User Target'),
        'mail_target'               : fields.char(string='Email Target'),
    }

问题是,如何使用函数向 mail_target 字段发送电子邮件? 请帮帮我

【问题讨论】:

    标签: python postgresql openerp


    【解决方案1】:

    您可以使用mail.thread 模型直接发送邮件,方法是使用以下附加到按钮的代码。

    @api.multi
    def send_mail(self):
        user_id = self.user_target.id
        body = self.message_target
    
        mail_details = {'subject': "Message subject",
             'body': body,
             'partner_ids': [(user_target)]
             } 
    
        mail = self.env['mail.thread']
        mail.message_post(type="notification", subtype="mt_comment", **mail_details)
    

    或者您可以直接使用标准库中的普通 ol smtplib,(但您的 odoo 配置将不再重要)。此示例假设您使用的是 gmail。如果不是,则必须填写邮件服务器的详细信息才能正常工作。

    @api.multi
    def send_mail(self):
        import smtplib
    
        receivers_email = self.user_target.login
    
        server = smtplib.SMTP('smtp.gmail.com', 587)
        server.starttls()
        server.login("your_email_address", "password")
    
        message = self.message_target
        server.sendmail("your_email_address", receivers_email, message)
    
        server.quit()
    

    由于user_targetres.users 字段相关,您可以从login 字段获取电子邮件

    【讨论】:

    • hii @danidee,感谢您的快速回复,并对我迟到的回复感到抱歉。最后我选择了smtplib来解决错误,它解决了body,非常感谢。但我想知道如何在 server.sendmail 中添加邮件主题。我尝试在 server.sendmail("your_email_address", receivers_email, subject, message) 中添加参数主题,但没有成功
    • message = "Subject:%s\n\n%s"%('Your subject', self.message_target)
    猜你喜欢
    • 2011-06-06
    • 2020-03-23
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2018-03-05
    • 2015-12-12
    • 1970-01-01
    • 2012-01-06
    相关资源
    最近更新 更多