博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python3 通过qq 服务器 发送邮件
阅读量:5749 次
发布时间:2019-06-18

本文共 3644 字,大约阅读时间需要 12 分钟。

# -*- encoding: utf-8 -*- import os, sys import smtplib from smtplib import SMTP_SSL from email.header import Header from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.application import MIMEApplication mailInfo = {
#邮件发件人 "from": "*******@qq.com", #邮件接收人列表,支持多个接收人 "to": ['*******@qq.com', '*******@qq.com'], #邮件服务器,这里是QQ邮箱的服务器地址 "hostname": "smtp.qq.com", #邮件发送人的用户名 "username": "*****@qq.com", #邮件发送人的密码,这里是QQ邮箱的授权码,在'设置'/'账号'/'POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务'/下打开所有的服务 #并记录授权码 "password": "*********", #邮件的主题,也就是标题 "mailsubject": "滑动验证码破解程序", #邮件的正文内容 "mailtext": "支持PYTHON3" "图片只是利用了RGB比较进行处理" "后续增加二值处理", #邮件的附件 "attachment": ['slidingVerification Code.py'], #邮件的编码格式,不用修改 "mailencoding": "utf-8" } def sendEmail(): #SMTP是邮件的一种协议,发送邮件需要按照这种协议进行 #SMTP_SSL是SMTP的加密协议,QQ邮箱使用的是这种协议 #此处先创建一条QQ邮箱的协议 smtp = SMTP_SSL(mailInfo["hostname"]) #这条不用管 smtp.set_debuglevel(1) #这条也不用管 smtp.ehlo(mailInfo["hostname"]) #使用用户名和密码登陆QQ邮箱 smtp.login(mailInfo["username"], mailInfo["password"]) #MIMEText是邮件内容的载体 #此处填好邮件的正文 msg = MIMEText(mailInfo["mailtext"], "plain", mailInfo["mailencoding"]) #填好邮件的标题 msg["Subject"] = Header(mailInfo["mailsubject"], mailInfo["mailencoding"]) #填好发件人 msg["from"] = mailInfo["from"] #填好收件人 msg["to"] = ";".join(mailInfo["to"]) #发送邮件 smtp.sendmail(mailInfo["from"], mailInfo["to"], msg.as_string()) #退出 smtp.quit() def sendEmailWithAttachment(): #SMTP是邮件的一种协议,发送邮件需要按照这种协议进行 #SMTP_SSL是SMTP的加密协议,QQ邮箱使用的是这种协议 #此处先创建一条QQ邮箱的协议 smtp = SMTP_SSL(mailInfo["hostname"]) #这条不用管 #smtp.set_debuglevel(1) #这条也不用管 #smtp.ehlo(mailInfo["hostname"]) #使用用户名和密码登陆QQ邮箱 smtp.login(mailInfo["username"], mailInfo["password"]) #MIMEMultipart是邮件内容的载体,可以携带附件 #此处创建该载体 msg = MIMEMultipart() #填好邮件的正文 msg.attach(MIMEText(mailInfo["mailtext"], "plain", mailInfo["mailencoding"])) #填好邮件的标题 msg["Subject"] = Header(mailInfo["mailsubject"], mailInfo["mailencoding"]) #填好发件人 msg["from"] = mailInfo["from"] #填好收件人 msg["to"] = ";".join(mailInfo["to"]) # 构造附件1,传送当前目录下的 test.txt 文件 #循环遍历所有的附件 for attFile in mailInfo["attachment"]: #读取文件内容 att = MIMEApplication(open(attFile, 'rb').read()) #创建附件,此处一定要是GBK格式,否则文件名会乱码 att.add_header('Content-Disposition', 'attachment', filename=('gbk', '', attFile)) #添加附件到邮件内 msg.attach(att) #发送邮件 smtp.sendmail(mailInfo["from"], mailInfo["to"], msg.as_string()) #退出 smtp.quit() def sendEmailWithHtml(): #SMTP是邮件的一种协议,发送邮件需要按照这种协议进行 #SMTP_SSL是SMTP的加密协议,QQ邮箱使用的是这种协议 #此处先创建一条QQ邮箱的协议 smtp = SMTP_SSL(mailInfo["hostname"]) #这条不用管 smtp.set_debuglevel(1) #这条也不用管 smtp.ehlo(mailInfo["hostname"]) #使用用户名和密码登陆QQ邮箱 smtp.login(mailInfo["username"], mailInfo["password"]) #MIMEText是邮件内容的载体 mail_msg = """

Python 邮件发送测试...

这是一个链接

""" #此处填好邮件的正文 msg = MIMEText(mail_msg, "html", mailInfo["mailencoding"]) #填好邮件的标题 msg["Subject"] = Header(mailInfo["mailsubject"], mailInfo["mailencoding"]) #填好发件人 msg["from"] = mailInfo["from"] #填好收件人 msg["to"] = ";".join(mailInfo["to"]) #发送邮件 smtp.sendmail(mailInfo["from"], mailInfo["to"], msg.as_string()) #退出 smtp.quit() #发送邮件(不带附件) #sendEmail() #发送邮件(携带附件) sendEmailWithAttachment() #发送邮件(正文为HTML) #sendEmailWithHtml()

转载于:https://www.cnblogs.com/kernel521/p/5870646.html

你可能感兴趣的文章
POI getDataFormat() 格式对照
查看>>
/etc/resolv.conf文件详解
查看>>
【转】VC的MFC中重绘函数的使用总结(整理)
查看>>
JQuery日记_5.13 Sizzle选择器(六)选择器的效率
查看>>
oracle查看经常使用的系统信息
查看>>
Django_4_视图
查看>>
Linux的netstat命令使用
查看>>
大快网站:如何选择正确的hadoop版本
查看>>
经过这5大阶段,你离Java程序员就不远了!
查看>>
IntelliJ IDEA 连接数据库详细过程
查看>>
PHP-X开发扩展
查看>>
android学习笔记——onSaveInstanceState的使用
查看>>
工作中如何做好技术积累
查看>>
Spring Transactional
查看>>
shell脚本实例
查看>>
我的友情链接
查看>>
Windows Phone 7 隔离存储空间资源管理器
查看>>
apache安装报错undefined reference ssl
查看>>
关于爱情只有一句忠告
查看>>
CentOS 7下安装部署Oracle11g图文教程
查看>>