Python 如何在没有邮件模板的情况下发送电子邮件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

我想在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_目标字段?
请帮助我

您可以使用
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\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)
或者,您可以直接使用标准库中的普通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\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目标)