如何发送没有邮件模板的电子邮件odoo 9

时间:2016-09-20 09:12:05

标签: python postgresql openerp

我想在odoo 9中发送没有任何电子邮件模板的电子邮件。我已成功设置传出&传入邮件配置。 我的方案是管理邮件别名作为电子邮件的发件人 这是我的模特:

  test_type         tps          mtt        mem        cpu       90th
0  sso_1000  205.263559  4139.031090  24.175933  34.817701  4897.4766
1  sso_1500  201.127133  5740.741266  24.599400  34.634209  6864.9820
2  sso_2000  203.204082  6610.437558  24.466267  34.831947  8005.9054
3   sso_500  189.566836  2431.867002  23.559557  35.787484  2869.7670

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

1 个答案:

答案 0 :(得分:3)

您可以使用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字段

获取电子邮件