python发送邮件

作者: python 发布时间: 2021-03-03 浏览: 1279 次 编辑

python发送邮件

作为一名实验狗,跑深度学习需要大量的时间,当我们无法预估程序还有多久跑完的时候可以在程序结尾加上发送email的功能,将实验结果发送到手机邮箱,方便我无缝衔接快速开始下一个实验

1. 为邮箱开启SMTP服务

python使用库smtplib发送邮件,需要邮件本身开启SMTP服务,下面以QQ邮箱为例展示如何开启SMTP。

首先打开QQ邮箱点击设置

选择账户后下拉找到以下界面

注意我们所需要的是 IMAP/SMTP服务,点击开启,会看到以下界面

用该邮箱的密保手机向其指定号码发送短信后,点击我已发送,成功生成授权码,这个授权码建议拍个照保存下,一会写代码要用。至此你的邮箱已经成功开启STMP服务了。

2. 发送纯文本邮件

import smtplib
from email.mime.text import MIMEText
def send_email(content):
    #content即为想要发送的信息
    #设置服务器所需信息
    #qq邮箱服务器地址
    mail_host = 'smtp.qq.com'
    #qq号
    mail_user = '********'
    #密码(部分邮箱为授权码)
    mail_pass = '在此处填入刚刚得到的授权码'
    #邮件发送方邮箱地址
    sender = '********@qq.com'
    #邮件接受方邮箱地址,注意需要[]包裹,这意味着你可以写多个邮件地址群发
    receivers = ['********@qq.com']
    
    
    #设置email信息#邮件内容设置
    message = MIMEText(content,'plain','utf-8')
    #邮件主题
    message['Subject'] = 'title'
    #发送方信息
    message['From'] = sender
    #接受方信息
    message['To'] = receivers[0]
    #登录并发送邮件
    try:
        smtpObj = smtplib.SMTP() 
        #连接到服务器 
        smtpObj.connect(mail_host,25)
        #登录到服务器 
        smtpObj.login(mail_user,mail_pass) 
        #发送
        smtpObj.sendmail( 
            sender,receivers,message.as_string())
        #退出
        smtpObj.quit()
        print('success')
    except smtplib.SMTPException as e: 
        print('error',e) #发送失败"