首页 > 技术文章 > python SMTP发送邮件 网易-QQ邮箱

HugJun 2020-01-17 11:27 原文

#需要提前开启网易或QQ邮箱的SMTP服务服务,详情百度。(基本都是在邮箱---设置----设置POP3/SMTP/IMAP 中开启)

#以下为个人所做磁盘预警发送案例

#邮件
def _format_addr(s):
    name, addr = parseaddr(s)
    return formataddr((Header(name, 'utf-8').encode(), addr))


def send_email(email_info):
    # 内容信息
    msg = MIMEText('\n'.join(email_info), 'plain', 'utf-8')
    form_addr = 'XXXX@163.com' #发送信息邮箱
    to_addr = 'XXX@qq.com'     #接受信息邮箱
    msg['From'] = _format_addr('磁盘程序<%s>' % form_addr)
    msg['To'] = _format_addr('管理员 XXX<%s>' % to_addr)
    msg['Subject'] = Header('磁盘空间警告!!!', charset='utf-8').encode()

    mail_host = "smtp.163.com"  # 设置服务器
    server = smtplib.SMTP_SSL(mail_host, 465)  # 网易版  发件人邮箱中的SMTP服务器,端口是465
    server.connect(mail_host, 465)
    # server = smtplib.SMTP('smtp.qq.com',25)    #qq邮箱版  发件人邮箱中的SMTP服务器,端口是25
    server.login('XXXXXX@163.com', 'XXXXX')  # 发件人邮箱账号、邮箱授权码
    msg.as_string()  # 中as_string()是将msg(MIMEText或MIMEMultipart对象)变为str。
    server.sendmail('XXXXX@163.com', 'XXXX@qq.com', msg.as_string()) #发送邮箱,接收邮箱
    server.quit()
if __name__ == '__main__':
  info_list = ['c:剩余:多少G 空间','D:剩余多少G空间']
  send_email(info_list)

推荐阅读