【问题标题】:Gmail API Python Plain Text is Not Wrapping in Body of EmailGmail API Python 纯文本未包含在电子邮件正文中
【发布时间】:2018-02-17 22:21:45
【问题描述】:

当我发送电子邮件时,纯文本没有换行。我读到您不能在一行中包含超过 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()

【问题讨论】:

  • 多行字符串应该自动包含换行符

标签: python email gmail-api


【解决方案1】:

在函数 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

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

基于此,您需要传入一个 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'])

现在文本在电话上换行并换行。

【讨论】:

    【解决方案2】:

    尝试使用三引号""" TEXT """ 而不是三撇号。试过这个:

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

    输出是:

    I'm going 
     down down 
     down
    

    【讨论】:

      猜你喜欢
      • 2017-03-07
      • 2012-10-31
      • 2021-06-03
      • 2011-02-26
      • 2017-10-28
      • 1970-01-01
      • 2018-07-28
      • 1970-01-01
      • 2017-09-18
      相关资源
      最近更新 更多