python邮件发送基础知识

 
一、smtplib模块:
主要通过SMTP类与邮件系统进行交互。使用方法如下:

1.实例化一个SMTP对象:
  s = smtplib.SMTP(邮件服务地址,端口号)

  s = smtplib.SMTP_SSL(邮件服务地址,端口号)

2.登陆邮件,权限验证:
  s.login(用户名,密码)

3.发送邮件:
  s.sendmail(发件人邮箱,收件人邮箱,发送内容)

4.断开连接:
  s.close()

 

二、email模块:
  email模块:支持发送的邮件内容为纯文本、HTML内容、图片、附件。email模块中有几大类来针对不同的邮件内容形式,常用如下:

  MIMEText:(MIME媒体类型)内容形式为纯文本、HTML页面。

  MIMEImage:内容形式为图片。

  MIMEMultupart:多形式组合,可包含文本和附件。

 

每一类对应的导入方式:
  from email.mime.text import MIMEText

  from email.mime.image import MIMEImage

  from email.mime.multipart import MIMEMultipart

 

三、MIMEText:
  MIMEText(msg,type,chartset)

  msg:文本内容

  type:文本类型默认为plain(纯文本)

   发送HTML格式的时候,修改为html,但同时要求msg的内容也是html的格式。

  chartset:文本编码,中文为“utf-8”

  # 构造TEXT格式的消息

  msg = MIMEText("hello.text","plain","utf-8")

  msg["Subject"] = "xxxxx"

  msg["From"] = "xxxx"

  msg["To"] = "xxxx"

  #发送以上构造的邮件内容要使用as_string将构造的邮件内容转换为string形式。

  s.sendmail("xxx","xxx",msg.as_string)

 

四、MIMEImage、MIMEMultipart:
  msg = MIMEMultipart()

  #实例化一个文本对象 

  msg_sub = MIMEText("hello.text","plain","utf-8")

  #将text消息添加到MIMEMultipart中,作为邮件正文。

  msg.attach(msg_sub)

 

  #图片作为附件

  import os

  img_datas = open(os.getcwd()+ "/reports/xxxx.png","rb").read()

  msg_img = MIMEImage(img_data)

  msg_img.add_header('Content-Disposition','attachment', filename = "xxxx.png" )

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

  #将图片添加到MIMEMultiplart中,作为附件发送。

  msg.attach(mag_img)

 

posted @ 2020-12-11 16:38  nanfengnan  阅读(109)  评论(0)    收藏  举报