码迷,mamicode.com
首页 > 编程语言 > 详细

python---网络之邮件发送

时间:2018-03-17 00:43:09      阅读:419      评论:0      收藏:0      [点我收藏+]

标签:开启   还需要   邮箱   self   包括   需要   设置   from   ade   

在发送邮件之前需要先设置邮件开启了SMTP等功能,对于163还需要获取授权码

技术分享图片技术分享图片这里设置保存修改

技术分享图片这里获取授权码

 

 

 

 

 

完整封装发送邮件类

import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.utils import parseaddr,formataddr

class SendEmail:
    #设置基本信息,包括发件人,发件人密码,收件人邮箱,以及发件箱服务器地址
    #发送方
    Send_Email = "18904190363@sina.cn"
    #发送方密码
    Send_Pwd = "ld19966257460"#对于163这里就不是密码,而是授权码
    #接收方
    Recv_Email = "18904190363@163.com"

    #设置发件方服务器地址
    SMTP_Server = smtp.sina.cn
    #设置发件方服务器端口
    SMTP_Ser_Port=25

    def __int__(self):
        pass

    @classmethod
    def _format_address(cls,text):
        #按照空格解析 发件人发送新浪信 <18904190363@sina.cn>
        name, address = parseaddr(text)
        return formataddr((Header(name, "utf-8").encode(), address))
        #注意formataddr是元组

    @classmethod
    def send_email_text(cls):
        # 第一个参数:邮件正文
        # 第二个参数:邮件类型 纯文本
        # 第三个参数:编码
        msg = MIMEText("测试smtp邮件发送功能", "plain", "utf-8")

        #这里注意了,大多数错误出在这里,当直接使用Header(xxx,utf-8)时会出错,需要进行解析,重组
        #=?utf-8?b?5p2l6IeqMTYz55qE5LiA5bCB6YKu5Lu2?= <18904190363@163.com>
        msg["From"] = SendEmail._format_address("发件人发送新浪信 <%s>" % SendEmail.Send_Email)#预留空格,在昵称和地址间
        msg["To"] = SendEmail._format_address("收件人由163接收 <%s>"%SendEmail.Recv_Email)
        msg["Subject"] = Header("测试邮箱功能", "utf-8").encode()#主题

        try:
            server = smtplib.SMTP(SendEmail.SMTP_Server, SendEmail.SMTP_Ser_Port)

            server.login(SendEmail.Send_Email, SendEmail.Send_Pwd)
            # 登录smtp服务器
            server.sendmail(SendEmail.Send_Email, [SendEmail.Recv_Email], msg.as_string())
            # 发送邮件
            server.quit()
            print("邮件发送成功")
        except Exception as e:
            print(e)
            print("邮件发送失败")


if __name__ =="__main__":
    SendEmail.send_email_text()

 

python---网络之邮件发送

标签:开启   还需要   邮箱   self   包括   需要   设置   from   ade   

原文地址:https://www.cnblogs.com/ssyfj/p/8586447.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!