我想在 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 字段? 请帮助我
最佳答案
您可以使用 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_target
与 res.users
字段相关,您可以从 login
字段获取电子邮件
关于python - 如何在没有邮件模板 odoo 9 的情况下发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39590054/