Python 如何在没有邮件模板的情况下发送电子邮件odoo 9
我想在odoo 9中发送没有任何电子邮件模板的电子邮件。我已成功设置发送和接收邮件配置。 我的场景是管理员邮件别名作为电子邮件发件人 这是我的模型:Python 如何在没有邮件模板的情况下发送电子邮件odoo 9,python,postgresql,openerp,Python,Postgresql,Openerp,我想在odoo 9中发送没有任何电子邮件模板的电子邮件。我已成功设置发送和接收邮件配置。 我的场景是管理员邮件别名作为电子邮件发件人 这是我的模型: class cashadvance(osv.osv): _name = 'comben.cashadvance' _order = 'create_date DESC' _columns = { 'user_target' : fields.many2one('res.users', st
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_目标字段?
请帮助我您可以使用
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)
或者,您可以直接使用标准库中的普通olsmtplib
(但这样,您的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\u target
与res.users
字段相关,您可以从login
字段获取电子邮件您可以使用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)
或者,您可以直接使用标准库中的普通olsmtplib
(但这样,您的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\u target
与res.users
字段相关,因此您可以从login
字段hii@danidee获取电子邮件,感谢您的快速回复,并对我的延迟回复表示歉意。最后我选择了smtplib来解决错误,它解决了正文,非常感谢。但是我想知道如何在server.sendmail中添加邮件主题。我已尝试在server.sendmail(“您的电子邮件地址”、收件人的电子邮件、主题、消息”中添加参数subject,但未成功message=“subject:%s\n\n%s”%(“您的主题”,self.message\u目标)
hii@danidee,感谢您的快速回答,并对我的延迟响应表示抱歉。最后我选择了smtplib来解决错误,它解决了正文,非常感谢。但是我想知道如何在server.sendmail中添加邮件主题。我尝试在server.sendmail中添加参数subject(“您的电子邮件地址”、收件人电子邮件、主题、消息),但未成功message=“subject:%s\n\n%s”%(“您的主题”、self.message\u目标)