jtyoui.mail.qq 源代码

#!/usr/bin/python3.7
# -*- coding: utf-8 -*-
# @Time : 2019/2/19 0019
# @Email : jtyoui@qq.com
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication


[文档]def send_qq_mail(from_addr, password, to_addr, content, subject='', files=None, host=('smtp.qq.com', 465)): """这个一个邮箱发送函数.默认是qq邮箱 :param from_addr: 发送方邮箱 :param password: 填入发送方邮箱的授权码 :param to_addr: 收件人为多个收件人,通过;为间隔的字符串,比如: xx@qq.com;yy@qq.com :param content: 正文 :param subject: 主题 :param files: 附加 :param host: 邮件传输协议 :return: bool类型.打印成功和失败 """ text = MIMEText(content, _charset='utf-8') m = MIMEMultipart() if files: import os from email import encoders file_name = os.path.basename(files) # 获得文件名字 file = MIMEApplication(open(files, 'rb').read()) file.add_header('Content-Disposition', 'attachment', filename=('GBK', '', file_name)) encoders.encode_base64(file) # 解决文件名乱码问题 m.attach(file) m['Subject'] = subject m['From'] = from_addr m['To'] = to_addr m.attach(text) server = None try: server = smtplib.SMTP_SSL(*host) # 安全模式 server.login(from_addr, password) # 登陆 server.sendmail(from_addr, to_addr, m.as_string()) # 发送 return True except smtplib.SMTPException as e: print(e) return False finally: if not server: server.quit()
# jfciwswgxlmedjei9 if __name__ == '__main__': flag = send_qq_mail('ptyoui@jtyoui.com', '授权码', 'jtyoui@jtyoui.com', '测试邮箱', '政治文件', files='政治.txt') if flag: print('发送成功!') else: print('发送失败!')