• Python SMTP发送邮件


      发送邮件是个很常用的功能.比如自己写个脚本获取并分析股票或期货数据,如果发现有交易机会.此时可以发个邮件来提醒自己.  

    SMTP即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制邮件的中转方式.Python的smtplib库对SMTP协议进行了封装.

    一 开启SMTP服务

      使用SMTP发送邮件的话需要本地安装支持SMTP的服务,或者直接使用其他邮件服务商的SMTP服务,这儿我用的QQ邮箱的SMTP服务.

    QQ邮箱默认是关闭SMTP服务的,需要自己去开启: 进入https://mail.qq.com/,登录邮箱,然后点击位于顶部的设置, 然后点击账户,然后下拉网页到下图这位置:

    点击开启.开启成功后会有一个授权码.这样SMTP服务就开启成功了.

    二 代码

      创建SendQQMail.py脚本,代码如下

    import smtplib
    from email.mime.text import MIMEText
    from email.header import Header
    from datetime import datetime, time
    
    class SendQQMail():
        def __init__(self, sender, authorizationCode, receivers):
            self.sender = sender
            self.authorizationCode = authorizationCode
            self.receivers = receivers
    
        def SendMail(self):
            today = str(datetime.now().date())
            subject = today + ' 期货行情提示'#邮件主题
       
            message = MIMEText('Python 邮件发送测试...', 'plain', 'utf-8')#第一个为邮件的内容,plain 设置文本格式   
            message['Subject'] = Header(subject, 'utf-8')#设置邮件主题
            message['From'] = Header("发件人名字", 'utf-8')   #设置发件人名字
            message['To'] =  Header("交易员", 'utf-8')        #设置收件人名字      
            
            try:
                smtp_server = 'smtp.qq.com'#发信服务器
                # 开启发信服务,这里使用的是加密传输
                server = smtplib.SMTP_SSL(smtp_server)
                server.connect(smtp_server, 465)
    
                # 登录发件人邮箱
                server.login(self.sender, self.authorizationCode)
                server.sendmail(self.sender, self.receivers, message.as_string())#发送邮件
                server.quit()#关闭服务器
                print ("邮件发送成功")
            except smtplib.SMTPException:
                print ("Error: 无法发送邮件")
    
    if __name__ == '__main__':
        sender = 'xxx@qq.com'#输入发件人邮箱
        receivers = ['xxx@qq.com']  #接收者邮件列表,可设置为你的QQ邮箱或者其他邮箱
        sendQQMail = SendQQMail(sender, 'aaa', receivers)#'aaa'处用你邮箱SMTP服务的授权编码
        sendQQMail.SendMail()

    三 运行

      打开cmd.exe,cd来到SendQQMail.py的目录,输入python SendQQMail.py,成功发送邮件如下图:

      

      

      

  • 相关阅读:
    记一次mqtt压测过程
    记项目过程中代码分支管理
    测试流程
    Docker与K8s的区别
    Mysql之pymysql
    Mysql常用简介
    JQuery
    CSS
    红外线接受程序 理解
    数码管流水灯升级程序理解
  • 原文地址:https://www.cnblogs.com/fengxing999/p/13860559.html
Copyright © 2020-2023  润新知