python smtplib傳送多個email聯絡人的實現
阿新 • • 發佈:2020-10-10
使用python下的stmpmail 模組,可以實現郵件的輕鬆和定製化傳送,不過在發給多使用者時,可能會對該模組理解不到位,造成傳送異常或資訊缺失,這裡就針對發給多個收件人,說說其中的兩個可能遇到的坑。
問題1:發給多個收件人不成功
tolist=['[email protected]','[email protected]','[email protected]'] msg = MIMEMultipart() msg['from'] = fromuser msg['subject'] = subject msg['to'] = ','.join(tolist) //此處也有用 msg['to'] = ';'.join(tolist) 的 server.sendmail(msg['from'],msg['to'],msg.as_string())
使用上面的示例進行傳送時,會出現傳送時,只有第一人收件人能收到email ,後面的人都無法收到的情況。該問題是由於server.sendmail 在接收多個收件人時,接到的資訊是list 列表,而不是字串 。這裡將最後一行更改為如下即可:
server.sendmail(msg['from'],'tolist',msg.as_string())
這樣來看,msg['to']這行的join語句是不是就沒有意義了?接下來看第二個問題
問題2:都能收到,但沒有收件人資訊
先看下圖:
我們將上面msg['to']這段資訊取消掉後,就會沒有收件人資訊。
所以stmpmail 關於多個收件人這塊也比較好理解:server.sendmail 裡傳參時的收件人是list,msg['to'] 接收的變數值是字串---即在郵件裡顯示的收信人資訊。
該問題在stackoverflow問答站上也有人提問:Python Not Sending Email To Multiple Addresses
到此這篇關於python smtplib傳送多個email聯絡人的實現的文章就介紹到這了,更多相關python smtplib傳送多個email內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!