Python smtplib sendmail删除文本开头的空白
Python正在发送电子邮件。只有一个问题是,它会删除电子邮件正文中行开头的空格。在我的例子中,电子邮件主体是git diff。我想保留缩进,这样我就可以从电子邮件中复制粘贴代码并使用它 以下是我的代码的相关部分:Python smtplib sendmail删除文本开头的空白,python,tabs,sendmail,Python,Tabs,Sendmail,Python正在发送电子邮件。只有一个问题是,它会删除电子邮件正文中行开头的空格。在我的例子中,电子邮件主体是git diff。我想保留缩进,这样我就可以从电子邮件中复制粘贴代码并使用它 以下是我的代码的相关部分: import cgi import re import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from subprocess import
import cgi
import re
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from subprocess import check_output
def generate_green_bg_color(input_line):
html_green = """
<html>
<head>
<style>
p4 {
color: black;
text-align: left;
font-size: 12px;
font-family: monospace;
}
</style>
</head>
<body>
<div style="background-color:rgb(193, 255, 198)">
<p4>"""+str(input_line)+"""</br></p4>
</body>
</html>
"""
return html_green
verbose_diff = check_output(['git', 'diff', 'HEAD^..HEAD’])
verbose_diff_list = verbose_diff.split('\n’)
for each in verbose_diff_list:
escaped_each = cgi.escape(each, True)
colored_line = generate_green_bg_color(escaped_each)
msg = MIMEMultipart()
email_compatible_diff_format = MIMEText(colored_line, 'html')
msg.attach(email_compatible_diff_format)
server = smtplib.SMTP('smtp.company.com')
server.sendmail(msg['From'], email_list, msg.as_string())
server.quit()
导入cgi
进口稀土
导入smtplib
从email.mime.text导入MIMEText
从email.mime.multipart导入MIMEMultipart
从子流程导入检查输出
def生成\绿色\背景\颜色(输入\行):
html_green=“”
p4{
颜色:黑色;
文本对齐:左对齐;
字体大小:12px;
字体系列:monospace;
}
“+str(输入线)+”
"""
返回绿色
verbose_diff=检查输出(['git','diff','HEAD^..HEAD'])
详细差异列表=详细差异拆分('\n')
对于详细差异列表中的每个:
转义\u each=cgi.escape(each,True)
彩色线条=生成绿色背景颜色(每个)
msg=MIMEMultipart()
email\u compatible\u diff\u format=MIMEText(彩色线,'html')
附加信息(电子邮件兼容格式)
服务器=smtplib.SMTP('SMTP.company.com')
server.sendmail(msg['From'],email\u list,msg.as\u string())
server.quit()
当我打印“msg.as_string()”的值时,我可以看到空白。以下是我收到的实际电子邮件的原始来源的一部分:
<html>
<head>
<style>
p4 {
color: black;
text-align: left;
font-size: 12px;
font-family: monospace;
}
</style>
</head>
<body>
<div style="background-color:rgb(193, 255, 198)">
<p4>+ print "Hello World:%s" %colored_line</br></p4>
</body>
</html>
p4{
颜色:黑色;
文本对齐:左对齐;
字体大小:12px;
字体系列:monospace;
}
+打印“Hello World:%s”%s\u行
您可以看到whitspace是如何保存在标记中的。但在电子邮件中,这些空白已经消失了。因此,我们试图找到一种在电子邮件正文中保留空白的方法 我解决了这个问题。在此处发布解决方案供其他人参考。我只需要从以下位置修改代码:
p4 {
color: black;
text-align: left;
font-size: 12px;
font-family: monospace;
}
到
一切都如期进行 我解决了这个问题。在此处发布解决方案供其他人参考。我只需要从以下位置修改代码:
p4 {
color: black;
text-align: left;
font-size: 12px;
font-family: monospace;
}
到
一切都如期进行 你的电子邮件客户端是什么?你试过用另一个来看看会发生什么吗?你的电子邮件客户端是什么?你试过用另一个来看看会发生什么吗?