<<返回python首页 python

《Python 应用案例》

使用Python smtplib库在线发送电邮

使用Python完成电子邮件的发送很容易,但许多人往往因为smtp服务的相关设置问题而失败,本节将使用Python的smptlib库,通过在线方式完成电子邮件的发送,同时着重说明邮件授权码如何获得。

创建邮件附件所需文件

#创建一个文件,一个图片
!echo 'my python email' > test.txt
!wget https://www.freeaihub.com/images/python.png

导入smtplib和email库

import smtplib
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
import os,time

配置信息

什么是授权码?

授权码是邮箱用于登录第三方客户端的专用密码。适用于登录以下服务:POP3/IMAP/SMTP等服务。

不同的邮件服务商获取授权码的方法不同,以下为获取方法,注意,是获得发送人邮箱的授权码。

腾讯邮箱网易邮箱

#在这里填入信息
sender = ''   #发送人邮箱,你自己的邮件如yourname@126.com
authcode = '' #发送人邮箱授权码
receivers = '' #收件人的邮箱,例如yourfriendname@126.com
smtpserver='' # 例如smtp.126.com
smtpport=465 #smtp服务端口,通常为465,可根据邮箱服务的信息进行更改


subject = 'python发邮件测试' #主题
content = 'python smtplib模块和email模块自动发送的邮件'    #正文

撰写邮件

#初始化信息对象
msg = MIMEMultipart()
msg['Subject'] = subject
msg['From'] = sender
msg['To'] = receivers

msg.attach(MIMEText('使用python smtplib模块和email模块自动发送邮件测试','plain','utf-8'))

#构造附件1,传送当前目录下文件
file_att1 = MIMEText(open('test.txt','rb').read(),'base64','utf-8') # rb以二进制方式读取
# file_att1["Content-Type"] = 'application/octet-stream'
# filename为附件名称,可以任意写,写什么名字,邮件中显示什么名字
file_att1["Content-Disposition"] = 'attachment; filename = "test.txt" '
#将附件添加到MIMEMultipart中
msg.attach(file_att1)

#图片附件
img_file = open(os.getcwd()+"/python.png",'rb').read()
msg_img = MIMEImage(img_file)
msg_img.add_header('Content-Disposition','attachment', filename = "python.png")
msg_img.add_header('Content-ID', '<0>')
msg.attach(msg_img)

#使用循环,连续发送5次验证效果
for i in range(5):
    try:
        s = smtplib.SMTP_SSL(smtpserver,smtpport)
        s.login(sender,authcode)
        s.sendmail(sender,receivers,msg.as_string())
        print('发送成功')
    except Exception:
        print('发送失败')
time.sleep(10)

本节案例麻烦的地方在于如何从邮件服务商处正常获得授权码,smtp服务器地址,端口等信息,耐心配置,您一定可以成功实现使用python在线发送邮件。

移动端设备除iPad Pro外,其它移动设备仅能阅读基础的文本文字。
建议使用PC或笔记本电脑,浏览器使用Chrome或FireFox进行浏览,以开启左侧互动实验区来提升学习效率,推荐使用的分辨率为1920x1080或更高。
我们坚信最好的学习是参与其中这一理念,并致力成为中文互联网上体验更好的学练一体的IT技术学习交流平台。
您可加QQ群:575806994,一起学习交流技术,反馈网站使用中遇到问题。
内容、课程、广告等相关合作请扫描右侧二维码添加好友。

狐狸教程 Copyright 2021

进入全屏