使用telnetlib 发送html格式邮件后格式发生改变,如何保持原格式发送?

之前使用smtplib + 163邮件发送测试报告,但是最近提出使用公司邮箱进行发送的需求,在使用smtplib报错又找不到原因的情况下无奈使用Telnet的方式进行发送邮件,于是便使用python提供的telnetlib,目前情况如下:
1.发送邮件没有问题
2.因为我是用htmltestrunner生成的html测试报告,但是收到邮件后发现测试失败的超链接是打开状态,之前报告中通过为绿色的字体北京也不见了,详见如图:
之前的效果
使用telnetlib 发送html格式邮件后格式发生改变,如何保持原格式发送?
使用telnet方式发送以后
使用telnetlib 发送html格式邮件后格式发生改变,如何保持原格式发送?

我的代码如下:
说明:我直接将生成的html文件读到DATA后边
`

try:

t = telnetlib.Telnet()

t.open(mail_server,port)

except Exception as e:

logger.error("failed to connection the mail server cause:{}".format(e))

t.read_until(b"220",timeout=10)

t.write(b"HELO smtp.abc.com\n")

t.read_until(b"250",timeout=10)

t.write(b"MAIL FROM:tester@abc.com\n")

t.read_until(b"250",timeout=10)

t.write(b"RCPT TO:lzz@abc.com\n")

t.read_until(b"250",timeout=10)

t.write(b"DATA\n")

t.read_until(b"354", timeout=10)

t.write(subject)

t.write(b"Content-Type: text/html;\n")

t.write(b"charset='UTF-8'\n")

t.write(b"Content-Transfer-Encoding: 7bit\n")

t.write(b"from:<tester@abc.com>\n")

t.write(b"to:<lzz@abc.com>\n")

t.write(b"\n")

# file_path是html文件

with open(file_path,mode="rb") as line:

for cont in line.readlines():

cont = bytes(cont + "\n")

t.write(cont)

t.write(b"this a mail send by cicd for test\n")

t.write(b".\n")

result = t.read_very_eager().decode('ascii')

print(result)

t.read_until("250",timeout=10)

t.write("QUIT\n")

`

以上是 使用telnetlib 发送html格式邮件后格式发生改变,如何保持原格式发送? 的全部内容, 来源链接: utcz.com/a/163602.html

回到顶部