-1
我正在使用Python34通过电子邮件发送消息。消息的一部分是表格。列对齐全部混淆在电子邮件中。下面是一个说明如何,我添加表的消息:如何通过smtplib发送email.message时保持字符串格式?
import email.message
import smtplib
rows = [['A','EEEEE','A'],
['BB','DDDD','BB'],
['CCC','CCC','CCC'],
['DDDD','BB','DDDD'],
['EEEEE','A','EEEEE']]
msg_text = ""
for row in rows:
msg_text += "{:<8}{:<8}{:<8}\n".format(row[0], row[1], row[2])
msg = email.message.Message()
msg['Subject'] = 'Subject'
msg['From'] = '[email protected]'
msg['To'] = '[email protected]'
msg.add_header('Content-Type','text/plain')
msg.set_payload(msg_text)
smtp_connection = smtplib.SMTP('HHHHUB02', 25, timeout=120)
smtp_connection.sendmail(msg['From'], msg['To'], msg.as_string())
print(msg.as_string())
它看起来像这样我的终端上: terminal print screen
它看起来像这样在我的邮箱: email print screen
如何通过smtplib发送email.message时保持字符串格式?
的可能的复制[如何通过电子邮件在python发送正确的表?](https://stackoverflow.com/questions/43568771/how-to-send-correctly-a-table-by-email -in-python) – stovfl
感谢您分享该链接。该解决方案虽然不太合适,但需要进行重大改变。首先,它需要目前不是我们分销的一部分的表格软件包。其次,它需要重构我们的代码,因为消息只是部分列表(已经更新了我的问题以突出这一事实)。 –
也许你需要将你的内容类型改为html并指定一个等宽字体。 – khelwood