在那些卑微的日子里,不敢去仰望星空的浩瀚,不敢去觸碰人間的靜好,也不敢去凝望高山的雄壯,不敢去期待流水的細長。
代碼
import smtplib
from email.header import Header
from email.mime.text import MIMEText
if __name__ == '__main__':
email_host = 'smtp.163.com'
email_user = '18735123416@163.com'
email_pwd = '***'
maillist = '**@qq.com', '**@qq.com'
me = email_user
msg = MIMEText('這是個python測試郵件,不用回復。')
msg['Subject'] = 'python測試'
msg['From'] = me # 發(fā)送者賬號
smtp = smtplib.SMTP(email_host, 25)
smtp.login(email_user, email_pwd)
for email in maillist:
smtp.sendmail(me, email, msg.as_string())
smtp.quit() # 發(fā)送完畢后退出smtp
print('email send success.')
注意事項
- 不同服務器host主機不同
- POP3服務器: pop.163.com
- SMTP服務器: smtp.163.com
- IMAP服務器: imap.163.com
- email_pwd 為
授權碼,不是你的郵箱密碼,必須確保開啟SMTP服務才能通過SMTP郵箱代理發(fā)送
SMTP設置
對勾點上.png
如果對勾沒有點上,在點的時候會讓你設置授權碼,這個授權碼就是上面發(fā)送的密碼 - 25端口為SMTP端口,如果使用SSL,端口改為465/994
常見錯誤匯總
- ConnectionRefused
- 郵箱沒有開通SMTP服務
- 登錄密碼沒有使用授權碼
- 晚上一般服務器郵箱網(wǎng)絡不穩(wěn)定,163郵箱設置的時候隔天才生效
2.500 Error: bad syntax
這個錯誤只出現(xiàn)在 Windows 系統(tǒng)上。遇到了這個錯誤,可在“控制版面”中點擊“查看網(wǎng)絡狀態(tài)和任務”進入“網(wǎng)絡和共享中心網(wǎng)絡連接詳細信息”中看到“連接特定的 DNS 后綴”這一項(如下圖所示),它的值應該和以上所示報錯信息中紅色文字所示部分類似,這個值中含有“空格”就是導致發(fā)信出錯的原因。

500.png
修改步驟為:在“控制版面”中點擊“查看網(wǎng)絡狀態(tài)和任務”進入“網(wǎng)絡和共享中心”,點擊現(xiàn)在使用的網(wǎng)絡連接,點擊網(wǎng)絡連接的【屬性】按鈕,雙擊“Internet 協(xié)議版本 4(TCP/IPv4)”這一項,再點擊【高級】按鈕,切換到“DNS”標簽,把“此連接的 DNS 后綴”修改為 HOST 或清空,然后依次確認保存。
- 線上服務器無法發(fā)送郵件或者發(fā)送郵件時間過長
- 線上服務器一般默認25端口封閉,必須申請25端口解封才能發(fā)送郵件
- 25端口發(fā)送郵件一定要借助第三方的SMTP服務,不要自己搭建SMTP然后發(fā)送郵件,會讓自己的服務器公網(wǎng)IP被回收

