python之发邮件

一、Python发送邮件的步骤

  前提:开通了第三方授权,可以使用SMTP服务

  1.创建一个SMTP对象:smtp = smtplib.SMTP()

  2.连接SMTP服务器,默认端口都是25:smtp.connect('smtp.163.com','25')

  3.登录自己邮箱账号:smtp.login('18910148469@163.com','lingjing2315')

  4.调用发送消息函数,参数:发件人,收件人(为列表的格式,单个收件人为字符串),消息内容:smtp.sendmail('18910148469','974644081@qq.com',msg.as_string())

  5.关闭连接:smtp.quit()

二、邮件消息注册

  首先创建一个消息对象:

msg = email.mime.multipart.MIMEMultipart()
msg['from']='18910148469@163.com'
msg['to']='974644081@qq.com;1414873973@qq.com'
msg['subject'] = 'ajing1111'

  分别指明邮件的发件人,收件,只代表显示的问题

三、消息内容

  首先,先定义一个字符串,来表示消息内容:

context ='''hello world'''
txt = email.mime.text.MIMEText(_text=content,_subtype="html")
msg.attach(txt)

  -subtype:这个参数表示是以HTML解析的形式去发送,还是以text的形式去发送

四、发送附件

  发送附件的步骤:

  1.先找到一个本地文件

  2.打开文件,读出文件字符串

  3.通过MIMText()类来创建一个对象attm,传入文件读出内容

  4.增加att的头部信息,并指定文件名字

  5.添加到msg消息中msg.attach(att)

attfile = 'test.py'
basename = os.path.basename(attfile)
fp = open(attfile, 'rb')
att = email.mime.text.MIMEText(fp.read(), 'html', 'utf-8')
att["Content-Type"] = 'application/octet-stream'
att.add_header('Content-Disposition', 'attachment',filename=('utf-8', '', basename))#three-tuple of (charset, language, value),
# encoders.encode_base64(att)

五、发送图片

  发送图片的步骤:

  1.本地必须存在一张图片

  2.打开图片,并读取图片内容

  3.创建发邮件相对应的图片对象imgattr = MIMEImage(fimg.read())

  4.增加图片的头信息,imgattr.add.header('Content ID','<image1>'),指定了图片的ID,图片如果想在正文中显示,必须通过HTML的格式显示出来:在前端代码中指定图片ID

  5.添加到message的信息中

六、使用第三方库yagmail来发送邮件

  使用pip install yagmail来进行安装。

七、程序例子

原文地址:https://www.cnblogs.com/huangdongju/p/8241748.html