当我发送电子邮件时,纯文本不会自动换行。我读到,一行中的字符不能超过80个,否则Gmail会自动换行,这会让手机上的文本看起来很糟糕。我把'html‘作为MIMETEXT()中的第二个参数。这将对文本进行换行,但不包括任何Python转义字符。我不知道怎么换行?
代码:我用'html‘参数设置了MIMEText,这似乎是对文本进行换行,但是在一个块中没有使用任何Python转义字符。
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())}问题在message_text中,不确定如何创建换行符,因为\n不起作用。
def main():
df = pd.read_csv('testdata.csv')
for index,row in df.iterrows():
to = row['Email']
sender = "sender"
subject = "subject"
dedent_text = '''Hello {}, \n
Thank you for attending our last meeting. We would
like to see you again at our next event.'''.format(row['First'])
message_text = textwrap.dedent(dedent_text).strip()
SendMessage(sender, to, subject, message_text)
if __name__ == '__main__':
main()发布于 2017-09-11 23:59:53
在函数CreateMessageHtml中,MIMEText对象接受一个子类型,即'HTML‘。来自文档:https://docs.python.org/2/library/email.mime.html#email.mime.text.MIMEText
类email.mime.text.MIMEText(_text[,_subtype,_charset])模块: email.mime.text
MIMEText类是MIMENonMultipart的子类,用于创建主要类型文本的MIME对象。_text是有效负载的字符串。_subtype是次要类型,默认为普通类型。
基于此,您需要传入一个HTML格式的字符串。因此,我将主函数中的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'])现在,文本在电话上换行。
发布于 2017-09-09 17:13:59
尝试使用三重引号""" TEXT """而不是三重撇号。我试过了:
mytext = """I'm going \n down down \n down """
print mytext输出结果是:
I'm going
down down
downhttps://stackoverflow.com/questions/46125823
复制相似问题