日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python自动发邮件运行正常就是收不到邮件是为什么_python stmp module 163邮箱发送邮件不成功...

發布時間:2023/12/15 python 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python自动发邮件运行正常就是收不到邮件是为什么_python stmp module 163邮箱发送邮件不成功... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

開發環境:

系統:Ubuntu 16.04 LTS

版本:python 3.5.2

郵箱服務器:stmp.126.com

注意:

1.不可正文群發帶圖,不然會被stmp.126.com認定為垃圾郵件,發不出去 - -!!! 也就是說該代碼群發的話,只能用plain純文本模式.

2.由于我的郵箱服務器是126的,所以建議也使用126郵箱測試,測試的前提是你需要開通客戶端授權,開通后會讓你設置密碼,那個密碼要記好,下面的passwd接收的是授權密碼而不是郵箱密碼!

3.代碼中需要改的地方的地方: 發件人/授權密碼/收件人/附件中圖片的路徑,以及下面的圖片格式

若不需要發附件,把with:代碼塊隱藏即可

下面直接貼代碼部分了,我自己已經測試過代碼了,在以上環境運行沒有問題,群發,單發,附件,郵件正文帶圖等等.

#!/usr/bin/python3

# coding:utf-8

#=========================================================================

# 加密SMTP

#

# 使用標準的25端口連接SMTP服務器時,使用的是明文傳輸,發送郵件的整個過程可能會被竊聽。要更安全地發送郵件,可以加密SMTP會話,實際上就是先創建SSL安全連接,然后再使用SMTP協議發送郵件。

#=========================================================================

from email import encoders

from email.header import Header

from email.mime.base import MIMEBase

from email.mime.multipart import MIMEMultipart

from email.mime.text import MIMEText

from email.utils import parseaddr, formataddr, formatdate

import smtplib

# return Alias_name

def _format_addr(s):

name, addr = parseaddr(s)

return formataddr((Header(name, 'utf-8').encode(), addr))

# 接收參數: 發件人地址

from_addr = '你的郵箱地址'

# 接收參數: 客戶端授權密碼

passwd = '你的客戶端授權密碼'

# 接收參數: 收件人地址,可多個

to_addrs = ['ex@qq.com', 'ex@163.com', 'ex@gmail.com']

# 接收參數: SMTP服務器(注意:是發件人的smtp服務器)

smtp_server = 'smtp.126.com'

# 接收參數: 郵件主題

subject = '人生苦短'

# 接收參數: 郵件正文

plain = '我用python!'

# 帶附件郵件

# 指定subtype為alternative,同時支持html和plain格式

msg = MIMEMultipart('alternative')

# 郵件正文中顯示圖片,同時附件的圖片將不再顯示

# plain = 'Hello world and hello me!'

msg.attach(MIMEText(str(plain), 'plain', 'utf-8')) # 純文本

# html = '

Hello

'

# msg.attach(MIMEText(html, 'html', 'utf-8')) # HTML

# 添加附件:即關聯一個MIMEBase,圖片為本地讀取

with open('/home/uxeix/Pictures/icon/favicon (Jianshu).ico', 'rb') as f:

# 設置附件中的MIME和文件名

mime = MIMEBase('image', 'jpeg', filename='hot.jpg')

# 加上必要的頭信息

mime.add_header('Content-Disposition', 'attachment',

filename='hot.jpg')

mime.add_header('Content-ID', '<0>')

mime.add_header('X-Attachment-Id', '0')

# 把附件的內容讀進來

mime.set_payload(f.read())

# 用Base64編碼

encoders.encode_base64(mime)

# 添加到MIMEMultipart

msg.attach(mime)

# 未指定用戶別名,則客戶端會自動提取郵件地址中的名稱作為郵件的用戶別名

msg['From'] = _format_addr(from_addr)

# msg['To'] = _format_addr(to_addrs)

msg['To'] = '%s' % ','.join([_format_addr('' % to_addr)

for to_addr in to_addrs])

msg['Subject'] = Header(str(subject), 'utf-8').encode()

msg['Date'] = formatdate()

#=========================================================================

# 發送郵件

#=========================================================================

try:

# SMTP服務器設置(地址,端口):

server = smtplib.SMTP_SSL(smtp_server, 465)

# server.set_debuglevel(1)

# 連接SMTP服務器(發件人地址, 客戶端授權密碼)

server.login(from_addr, passwd)

# 發送郵件

server.sendmail(from_addr, to_addrs, msg.as_string())

print('郵件發送成功')

except smtplib.SMTPException as e:

print(e)

print('郵件發送失敗')

finally:

# 退出SMTP服務器

server.quit()

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的python自动发邮件运行正常就是收不到邮件是为什么_python stmp module 163邮箱发送邮件不成功...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。