下面是一个简单的测试,它演示了我所看到的问题:
import smtplib
from email.message import EmailMessage
my_addr = 'my_email@my_domain.com'
str = ''
for i in range(500):
str += f'{i}: <a href="https://google.com">https://google.com</a><br>'
msg = EmailMessage()
msg.set_content('')
msg.add_alternative(str, subtype='html')
msg['Subject'] = 'html test'
msg['From'] = my_addr
msg.add_header('reply-to', my_addr)
msg['To'] = my_addr
with smtplib.SMTP('localhost', timeout=30) as smtp_server:
smtp_server.send_message(msg)
由此产生的邮箱似乎在输入的html中每1000个字节就"中断"一次.此长度包括HTML字符串中的所有标记.收到的邮箱如下所示:
我try 了不同的SMTP服务器,使用不同的消息长度限制,但都设置为10M或更高,所以我怀疑这是否有任何效果.此外,我没有收到错误代码或异常.每样东西都送得干干净净.Smtplib似乎以某种方式打破了这一信息.
你知道问题出在哪里吗?或者如何纠正这个问题?