簡體   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