繁体   English   中英

使用sendmail发送电子邮件不适用于大型电子邮件

[英]Sending emails with sendmail doesn't work for large emails

我通过以下方式使用python的sendmail

msg = <SOME MESSAGE>
s = smtplib.SMTP('localhost')
s.sendmail(me, you, msg.as_string())
s.quit()

当消息很大(大约200行)时,这通常可以正常工作(即,我收到电子邮件),但会失败(即,不显示异常,但电子邮件没有到达)。 有什么想法会导致这种情况吗?

你要寄给谁 如果将某些电子邮件服务器(例如Yahoo和Hotmail)归类为潜在垃圾邮件,则应在一段时间内考虑将其隔离。 垃圾邮件将取决于内容,图像与文本的比率,附件的性质,html链接的性质,发送速率,重复次数,发件人以及许多其他因素。

尝试设置调试级别以跟踪协议进度。

SMTP.set_debuglevel(level)

设置调试输出级别。 级别的真值将导致连接的调试消息以及发送到服务器和从服务器接收的所有消息。

消息成功排队后,调试跟踪的尾部如下所示:

>>> conn = smtplib.SMTP('mail')
>>> conn.set_debuglevel(1)
>>> conn.sendmail('you@example.com','me@example.com','subject: test\n\ntest.\n')
...
send: 'subject: test\r\n\r\ntest.\r\n.\r\n'
reply: '250 2.5.0 Message received and queued.\r\n'
reply: retcode (250); Msg: 2.5.0 Message received and queued.
data: (250, '2.5.0 Message received and queued.')
{}

您可以尝试通过以下方式查看SMTP实际发送的内容:将网钩挂在端口上,然后发送到该端口: nc -l 5678然后在Python中smtplib.SMTP('localhost', 5678)

如果看起来正确(并且没有理由不这样做),则可以尝试将其提供给telnet localhost smtp以直接查看响应。 那应该让您知道出了什么问题。

我也刚刚开始通过SMPT服务器发送电子邮件。 您正在使用什么软件来创建本地主机服务器? 有时,可以将软件设置为拒绝给定长度的消息。 检查您的服务器设置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM