如何在 sendmail() 中添加主题

问题描述

//下面的代码是我的python文件。 //我想为此添加一个主题。当我向 sendmail() 添加主题参数时。 //它在odoo中显示错误。 //我怎么能这样做!!!

Code:

 def sendotp(self):
          if self.mail:
                mail = self.mail
                otp = ''.join(str(random.randint(0,9))for i in range 
                server = smtplib.SMTP('smtp.gmail.com',587)
                server.starttls()
                server.login(<mymail>,password)
                msg = 'Hi,your OTP is,' +str(otp)
                server.sendmail('priyaraji.c24@gmail.com',mail,msg)
                server.quit()
                      

解决方法

您可以使用 MIMEText 部分发送 smtp 消息

import smtplib
from email.mime.text import MIMEText

def sendotp(self):
      if self.mail:
            mail = self.mail
            otp = ''.join(str(random.randint(0,9))for i in range 
            server = smtplib.SMTP('smtp.gmail.com',587)
            server.starttls()
            server.login(<mymail>,password)

            # MIMEText mail message
            msg = MIMEText('Hi,your OTP is,' + str(otp))
            msg['Subject'] = 'Test mail'
            msg['From'] = 'priyaraji.c24@gmail.com'
            msg['To'] = mail

            server.sendmail('priyaraji.c24@gmail.com',mail,msg.as_string())
            server.quit()
,

在 odoo 中发送电子邮件非常简单

mail_values = {
    'subject': subject,'body_html': body_html,'email_to': self.send_email_to,'email_from': email_from,'state': 'outgoing'
}
self.env['mail.mail'].sudo().create(mail_values).send()
,

//这个语句对我有用。

SUBJECT = "主题"
TEXT = "邮件正文"

message = '主题:{}\n\n{}'.format(SUBJECT,TEXT)