【ptyhon邮件发送--smtplib模块】

**SMTP(Simple Mail Transfer Protocol)**是简单邮件传输协议,它是一组用于由源地址到目的地址的邮件传输规则。
python中连接smtp服务语法如下:(以163邮箱为例)
import smtplib
smtplib.SMTP_SSL(‘smtp.163.com’, 465)

发送邮件的语法如下:
SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options])
参数说明:

  1. from_addr: 邮件发送者地址。
  2. to_addrs: 字符串列表,邮件发送地址。
  3. msg: 发送消息
    这里要注意一下第三个参数msg为邮件的部分,包含标题、发信人,收件人,邮件内容,附件等。这部分在email模块中进行构建的。
    MIMEText : (MIME媒体类型)内容形式为纯文本,HTML页面(导入方式 : from email.mime.text import MIMEText
    MIMEImage : 内容形式为图片(导入方式 : from email.mime.image import MIMEImage
    MIMEMultupart : 多形式组合,可包含文本和附件(导入方式 : from email.mime.multipart import MIMEMultipart
    (1).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)
    (2)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)
    附代码:
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr

def mail(subject,text):
    sender='xxxxxxxx@163.com'    #发件人邮箱
    password='xxxxxxxx'     #发件人邮箱密码(授权码)
    receiver='xxxxxxx@163.com'  #收件人邮箱
    try:
       msg=MIMEText(text,'plain','utf-8')
       msg['From']=formataddr(['xxxxxx',sender])   #发件人邮箱
       msg['To']=formataddr(['xxxxxx',receiver])   #收件人邮箱
       msg['Subject']=subject   #主题信息
       server = smtplib.SMTP_SSL('smtp.163.com', 465)   #163邮箱smtp服务器及端口
       server.login(sender,password)   #登录发件人邮箱
       server.sendmail(sender,receiver,msg.as_string())  #发送邮件
       server.close()
       print('发送成功\t\n')
    except Exception:
       print('发送失败\t\n')

mail('测试邮件','hello python')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值