zoukankan      html  css  js  c++  java
  • python smtp邮件发送模块

    python3中自带了smtplib模块和email模块
    smtplib模块负责邮件与服务器的交互
    email模块,负责组织邮件内容
    smtplib模块
    smtplib模块主要通过SMTP类来与邮件系统进行交互
     
    1.实例化一个SMTP对象
    s=smtplin.SMTP(邮件服务器地址,端口号)
    s=smtplib.SMTP_SSL(邮件服务器地址,端口号)
     
    2.登陆邮箱,权限验证
    s.loging(用户名,密码)
     
    3.发送邮件
    s.sendmail(发件人邮箱,收件人邮箱,发送内容)
     
    4.断开连接
    s.close()
     
    import smtplib
    s=smtplib.SMTP_SSL("smtp.qq.com",465)   #qq邮箱服务器和端口
    s.set_debuglevel(1)                                       #打印出与服务器交互的所有信息
    s.login("zhouxiaodiok@qq.com","emtpkxlgqmrrbccf")         #登陆用户名和密码
    s.sendmail("744700813@qq.com","597238878@qq.com","helloworld") #发件人 收件人 内容
    s.close()
     
    此方法查看收件人的邮件,会发现没有发件人,没有主题,没有收件人信息
    这是因为邮件主题,如何显示发件人,收件人等信息并不是通过SMTP协议发送
    而是包含在发送的文本中的,所以我们必须把From To Subject添加到MIMEText中,才是一封完整的邮件
     
    email模块
    email模块支持发送的邮件内容为纯文本,html内容,图片,添加附件
    email模块中有几大类用来针对不同的邮件内容形式,常用如下
    MIMEText  内容形式为纯文本,或者html页面
    MIMTImage内容形式为图片
    MIMEMultipart多形式组合,即内容包含文本和附件
     
    每一类对应的导入方式:
    from email.mime.text import MIMEText
    from email.mine.multipart import MIMEMultipart
    from email.mime.image import MIMEImage
     
    email负责构造邮件,smtplib负责发送邮件
    连接邮件服务器,登陆自己的邮箱,填写发送的主题,发件人,内容
    MIMEText
    MIMEText(msg,type,chartset):
    msg:文本内容
    type:默认为plain,即纯文本
    发送html格式的时候,修改为html,但同时要求msg的内容也是html的格式
    chartset:文本编码,有中文时选择utf-8
     
    #构造TEXT格式的消息
    msg=MIMEText("hello,test!",_charset="utf-8")
    msg["from"]="XXX"
    msg["To"]="XXX"
    msg["Subject"]="Python发邮件测试”
     
    #发送以上构造的邮件内容
    要使用as_string来将构造的邮件内容转换成string形式
    s.sendmail("XXX","XXX",msg.as_string())
     
    import smtplib
    from email.mime.text import  MIMEText
    s=smtplib.SMTP_SSL("smtp.qq.com",465)   #qq邮箱服务器和端口
    s.set_debuglevel(1)  #打印出与服务器交互的所有信息
    s.login("zhouxiaodiok@qq.com","emtpkxlgqmrrbccf")         #登陆用户名和密码
    msg=MIMEText("HELLO,你好,TEXT!",_charset="utf-8") #实例化MIMETex类,传入参数发送内容,文本格式,编码格式
    msg["From"]="744700813@qq.com"
    msg["To"]="597238878@qq.com"
    msg["Subject"]="python测试"
    s.sendmail("744700813@qq.com","597238878@qq.com",msg.as_string()) #发件人 收件人前面配置的所有内容都转成string
    s.close()
     
    MIMEImage MIMEMultipart
    msg=MIMEMultipart()
    msg_sub=MIMEText("hello,test!",_charset="utf-8")
    msg.attach(msg_sub) #将text消息添加到MIMEMultipart中,作为邮件正文
    #图片作为附件
    import os
    image_data=open(os.getcwd()+"/reports/python33安装-添加path.png","rb").read()   #rb代表二进制 以二进制模式来打开
    msg_image=MIMEImage(image_data)
    msg_img.add_header('Content-Disposition','attachment',filename='python34.png')
    msg_img.add_header('Content-ID','<0>')    #下标是0
    msg.attach(msg_img) #将图片信息添加到MIMEMultipart中,作为附件发送
     

  • 相关阅读:
    #Laravel笔记# 使用SMTP发送邮件功能
    #Laravel笔记# 监听事件
    idea 常见问题
    python常见函数汇总
    双DNN排序模型:在线知识蒸馏在爱奇艺推荐的实践
    机器学习算法GBDT
    Hive表数据同步到es
    目标检测资料
    zeppelin的介绍与使用
    Java汉字获取拼音、笔划、偏旁部首
  • 原文地址:https://www.cnblogs.com/nuonuozhou/p/8645140.html
Copyright © 2011-2022 走看看