zoukankan      html  css  js  c++  java
  • python3 smtplib发送邮件

    使用smtp包发送邮件还依赖email的一些方法

    发送邮件主要分为三步:

        1,定义邮箱参数:邮箱服务器地址,邮箱用户名,邮箱密码,邮件发送方,邮件接收方,邮件标题,邮件内容

        2,配置发送内容

        3,实例化邮箱,连接邮箱,登陆邮箱,发送邮件

    代码如下:

    import smtplib
    from email.mime.text import MIMEText
    from email.header import Header
    
    #定义邮箱参数
    mail_sever = 'smtp.163.com'        #邮箱服务器地址
    mail_user = 'xxx@163.com'          #邮箱用户名
    mail_pass = 'xxx'                  #邮箱密码
    sender = 'xxx@163.com' #邮件发送方 reciver = 'xxx@qq.com' #邮件接收方
    subject = 'python' #邮件标题 content = 'over' #邮件内容 #配置发送内容 msg = MIMEText(content,_subtype='plain',_charset='utf-8') # 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码
    msg['subject'] = Header(subject,'utf-8')    #邮件标题
    msg['From'] = sender                        #邮件发送方
    msg['To'] = reciver               #邮件接收方
    
    #实例化邮箱
    smtp = smtplib.SMTP()                                #实例化邮箱
    smtp.connect(mail_sever)                  #连接邮箱服务器
    smtp.login(user=mail_user,password=mail_pass)        #登陆邮箱
    smtp.sendmail(sender,reciver,msg.as_string())     #发送邮件
    print('ok')

    补充:

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。

    python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装。

    Python创建 SMTP 对象语法如下:

    import smtplib
    
    smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )
    

    参数说明:

    • host: SMTP 服务器主机。 你可以指定主机的ip地址或者域名如:w3cschool.cn,这个是可选参数。
    • port: 如果你提供了 host 参数, 你需要指定 SMTP 服务使用的端口号,一般情况下SMTP端口号为25。
    • local_hostname: 如果SMTP在你的本机上,你只需要指定服务器地址为 localhost 即可。

    Python SMTP对象使用sendmail方法发送邮件,语法如下:

    SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options]
    

    参数说明:

    • from_addr: 邮件发送者地址。
    • to_addrs: 字符串列表,邮件发送地址。
    • msg: 发送消息

    这里要注意一下第三个参数,msg是字符串,表示邮件。我们知道邮件一般由标题,发信人,收件人,邮件内容,附件等构成,发送邮件的时候,要注意msg的格式。这个格式就是smtp协议中定义的格式。

    添加附件的方法:

    import smtplib
    from email.mime.text import MIMEText
    from email.header import Header
    from email.mime.multipart import MIMEMultipart
    #定义邮箱参数
    mail_sever = 'smtp.163.com'        #邮箱服务器地址
    mail_user = 'xxx@163.com'          #邮箱用户名
    mail_pass = 'xxxx'                  #邮箱密码
    sender = 'xxx@163.com'             #邮件发送方
    reciver = 'xxx@163.com'             #邮件接收方
    subject = 'python'                 #邮件标题
    
    #配置发送内容
    # 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码
    # msg = MIMEText(content,_subtype='plain',_charset='utf-8')
    msg = MIMEMultipart()
    #邮件标题
    msg['subject'] = Header(subject,'utf-8')
    #邮件发送方
    msg['From'] = sender
    #邮件接收方
    msg['To'] = reciver
    #邮件正文内容
    msg.attach(MIMEText('邮件发送测试...','plain','utf-8'))
    #构造附件1
    att1 = MIMEText(open(r"C:\Users\jfw2462\Desktop\工作\环境\服务器密码IP信息.xlsx",'rb').read(),'base64','utf-8')
    att1["Content-Type"] = 'application/octet-stream'
    att1["Content-Disposition"] = 'attachment; filename="test.xlsx"'
    msg.attach(att1)
    #实例化邮箱
    smtp = smtplib.SMTP()
    #连接邮箱服务器
    smtp.connect(mail_sever)
    #登陆邮箱
    smtp.login(user=mail_user,password=mail_pass)
    #发送邮件
    smtp.sendmail(sender,reciver,msg.as_string())
    print('ok')
    
  • 相关阅读:
    ajax的尝试
    小型企业信息化所依据的U型理论(5)
    链接服务器中使用用户自定义函数
    小型企业信息化所依据的U型理论(1)
    JAXWS(二)之使用wsimport创建WebService客户端
    linux开启MySql远程连接功能
    .net 流(Stream) StreamWriter和StreamReader、BinaryReader和BinaryWriter
    JAXWS(一)之使用wsgen从Java创建WebService
    Web Service及其构成
    .net 流(Stream) 文件流、内存流、网络流
  • 原文地址:https://www.cnblogs.com/yizhipanghu/p/10970601.html
Copyright © 2011-2022 走看看