Gmail API Python纯文本未包含在电子邮件正文中

时间:2017-09-08 23:40:26

标签: python email gmail-api

当我发送电子邮件时,纯文本没有包装。我知道你在一行中不能超过80个字符,否则Gmail会自动中断,这会使文本在手机上看起来很糟糕。我把' html'作为MIMETEXT()中的第二个参数。这包装了文本,但不包含任何Python转义字符。我无法弄清楚如何换行?

代码: 我将MIMEText设置为' html'参数,这似乎包装文本,但在一个块中没有使用任何Python转义字符。

var plorp = ["bbllkw", "oox", "ejjuyyy", "plmiis", "xxxzgpsssa", "xxwwkktt", "znnnnfqknaz", "qqquuhii", "dvvvwz"];
var longest = plorp.reduce((a, b) => a.length > b.length ? a : b, '');
console.log(longest);

问题在message_text中,不知道如何创建换行符,因为\ n不起作用。

def CreateMessageHtml(sender, to, subject, message_text):
    msg = MIMEText(message_text,'html')
    msg['Subject'] = subject
    msg['From'] = sender
    msg['To'] = to

    return {'raw': base64.urlsafe_b64encode(msg.as_string())}

2 个答案:

答案 0 :(得分:0)

尝试使用三引号""" TEXT """代替三重撇号。试过这个:

mytext = """I'm going \n down down \n down """
print mytext

,输出结果为:

I'm going 
 down down 
 down

答案 1 :(得分:0)

在函数CreateMessageHtml中,MIMEText对象采用子类型,即“HTML”。来自文档:https://docs.python.org/2/library/email.mime.html#email.mime.text.MIMEText

class email.mime.text.MIMEText(_text [,_ subtype [,_ charset]]) 模块:email.mime.text

MIMENonMultipart的子类,MIMEText类用于创建主要类型文本的MIME对象。 _text是有效负载的字符串。 _subtype是次要类型,默认为plain。

基于此,您需要传入HTML格式的字符串。所以我将main函数中的dedent_text更改为:

dedent_text='''Hello {},
<p> Thank you for attending our last meeting.</P>
<p>We would like to see you again at our next 
event.</p>'''.format(row['First'])

现在,文字包含在带有换行符的手机上。