0

0

解读Python发送邮件_html/css_WEB-ITnose

php中文网

php中文网

发布时间:2016-06-21 09:00:23

|

1704人浏览过

|

来源于php中文网

原创

解读python发送邮件

Python发送邮件需要smtplib和email两个模块。也正是由于我们在实际工作中可以导入这些模块,才使得处理工作中的任务变得更加的简单。今天,就来好好学习一下使用Python发送邮件吧。

SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。

Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件。

1.邮件正文是文本的格式

立即学习Python免费学习笔记(深入)”;

通义万相
通义万相

通义万相,一个不断进化的AI艺术创作大模型

下载
 1 # -*- coding: UTF-8 -*- 2  3 from email.mime.multipart import MIMEMultipart 4 from email.mime.text import MIMEText 5 import smtplib 6 import sys 7 import csv 8 import xlrd 9 from pyExcelerator import *10 import os11 import xlwt12 from xlutils.copy import copy13 import pyExcelerator14 import datetime15 import time16 17 reload(sys)18 sys.setdefaultencoding("utf-8")19 20 mailto_list = [""]  # 邮件接收方的邮件地址21 mail_host = "smtp.exmail.qq.com"    # 邮件传送协议服务器22 mail_user = ""  # 邮件发送方的邮箱账号23 mail_pass = ""  # 邮件发送方的邮箱密码24 25 def send_mail(to_list, sub, content):26     me = "天才白痴梦"+"<"+mail_user+">"27     msg = MIMEText(content, _subtype='plain', _charset='utf-8')28     msg['Subject'] = sub    # 邮件主题29     msg['From'] = me30     msg['To'] = ";".join(to_list)31     try:32         server = smtplib.SMTP()33         server.connect(mail_host)34         server.login(mail_user, mail_pass)35         server.sendmail(me, to_list, msg.as_string())36         server.close()37         return True38     except Exception, e:39         print str(e)40         return False41 42 if __name__ == '__main__':43     sub = "天才白痴梦"44     content = '...'45     if send_mail(mailto_list, sub, content):46         print "发送成功"47     else:48         print "发送失败"

2.邮件正文是表格的格式:由于是表格,所以我们选择HTML来实现表格的功能,邮件上面显示的就是HTML实现的内容了。

 1 # -*- coding: UTF-8 -*- 2  3 from email.mime.multipart import MIMEMultipart 4 from email.mime.text import MIMEText 5 import smtplib 6 import sys 7 import csv 8 import xlrd 9 from pyExcelerator import *10 import os11 import xlwt12 from xlutils.copy import copy13 import pyExcelerator14 import datetime15 import time16 17 reload(sys)18 sys.setdefaultencoding("utf-8")19 20 mailto_list = [""]  # 邮件接收方的邮件地址21 mail_host = "smtp.exmail.qq.com"    # 邮件传送协议服务器22 mail_user = ""  # 邮件发送方的邮箱账号23 mail_pass = ""  # 邮件发送方的邮箱密码24 25 def send_mail(to_list, sub, content):26     me = "天才白痴梦"+"<"+mail_user+">"27     # 和上面的代码不同的就是,这里我们选择的是html 的格式28     msg = MIMEText(content, _subtype='html', _charset='utf-8')29     msg['Subject'] = sub    # 邮件主题30     msg['From'] = me31     msg['To'] = ";".join(to_list)32     try:33         server = smtplib.SMTP()34         server.connect(mail_host)35         server.login(mail_user, mail_pass)36         server.sendmail(me, to_list, msg.as_string())37         server.close()38         return True39     except Exception, e:40         print str(e)41         return False42 43 if __name__ == '__main__':44     sub = "天才白痴梦"45     html = ''46     if send_mail(mailto_list, sub, html):47         print "发送成功"48     else:49         print "发送失败"

3.邮件正文是图片的格式:要把图片嵌入到邮件正文中,我们只需按照发送附件的方式,先把邮件作为附件添加进去,然后,在HTML中通过引用src="cid:0"就可以把附件作为图片嵌入了。如果有多个图片,给它们依次编号,然后引用不同的cid:x即可。

 1 def send_mail(to_list, sub, content): 2     me = "天才白痴梦"+"<"+mail_user+">" 3  4     msg = MIMEMultipart() 5     msg['Subject'] = sub    # 邮件主题 6     msg['From'] = me 7     msg['To'] = ";".join(to_list) 8  9     txt = MIMEText("天才白痴梦", _subtype='plain', _charset='utf8')10     msg.attach(txt)11 12     # :黑体  :斜体13     msgText = MIMEText('Some HTML text and an image.good!', 'html', 'utf-8')14     msg.attach(msgText)15 16     file1 = "F:\\1.jpg"17     image = MIMEImage(open(file1, 'rb').read())18     image.add_header('Content-ID', '')19     msg.attach(image)20 21     try:22         server = smtplib.SMTP()23         server.connect(mail_host)24         server.login(mail_user, mail_pass)25         server.sendmail(me, to_list, msg.as_string())26         server.close()27         return True28     except Exception, e:29         print str(e)30         return False31 32 if __name__ == '__main__':33     sub = "天才白痴梦"34     html = ''35     if send_mail(mailto_list, sub, html):36         print "发送成功"37     else:38         print "发送失败"

4.发送邮件附件:邮件附件是图片

 1 def send_mail(to_list, sub, content): 2     me = "天才白痴梦"+"<"+mail_user+">" 3  4     msg = MIMEMultipart() 5     msg['Subject'] = sub    # 邮件主题 6     msg['From'] = me 7     msg['To'] = ";".join(to_list) 8  9     txt = MIMEText("天才白痴梦", _subtype='plain', _charset='utf8')10     msg.attach(txt)11 12     # # :黑体  :斜体13     # msgText = MIMEText('Some HTML text and an image.good!', 'html', 'utf-8')14     # msg.attach(msgText)15     #16     # file1 = "F:\\1.jpg"17     # image = MIMEImage(open(file1, 'rb').read())18     # image.add_header('Content-ID', '')19     # msg.attach(image)20 21     att = MIMEText(open('F:\\1.jpg', 'rb').read(), 'base64', 'utf-8')22     att["Content-Type"] = 'application/octet-stream'23     att["Content-Disposition"] = 'attachment; filename="1.jpg"'24     msg.attach(att)25 26     try:27         server = smtplib.SMTP()28         server.connect(mail_host)29         server.login(mail_user, mail_pass)30         server.sendmail(me, to_list, msg.as_string())31         server.close()32         return True33     except Exception, e:34         print str(e)35         return False

5.发送群邮件:同时发送给多人

1 mailto_list = [""]  # 邮件接收方的邮件地址

上面这一行代码是邮件接收方的邮件地址,如果我们需要给多人发送邮件的话,就只需要把对方的邮件帐号绑在这一个列表里就ok了。

加密SMTP

使用标准的25端口连接SMTP服务器时,使用的是明文传输,发送邮件的整个过程可能会被窃听。要更安全地发送邮件,可以加密SMTP会话,实际上就是先创建SSL安全连接,然后再使用SMTP协议发送邮件。

方法:只需要在创建SMTP对象后,立刻调用starttls()方法,就创建了安全连接。

1 smtp_server = 'smtp.qq.com'2 smtp_port = 25    # 默认端口号为253 server = smtplib.SMTP(smtp_server, smtp_port)4 server.starttls()5 # 剩下的代码和前面的一模一样:6 server.set_debuglevel(1)     # 打印出和SMTP服务器交互的所有信息

相关文章

python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

2

2026.01.29

java配置环境变量教程合集
java配置环境变量教程合集

本专题整合了java配置环境变量设置、步骤、安装jdk、避免冲突等等相关内容,阅读专题下面的文章了解更多详细操作。

2

2026.01.29

java成品学习网站推荐大全
java成品学习网站推荐大全

本专题整合了java成品网站、在线成品网站源码、源码入口等等相关内容,阅读专题下面的文章了解更多详细推荐内容。

0

2026.01.29

Java字符串处理使用教程合集
Java字符串处理使用教程合集

本专题整合了Java字符串截取、处理、使用、实战等等教程内容,阅读专题下面的文章了解详细操作教程。

0

2026.01.29

Java空对象相关教程合集
Java空对象相关教程合集

本专题整合了Java空对象相关教程,阅读专题下面的文章了解更多详细内容。

3

2026.01.29

clawdbot ai使用教程 保姆级clawdbot部署安装手册
clawdbot ai使用教程 保姆级clawdbot部署安装手册

Clawdbot是一个“有灵魂”的AI助手,可以帮用户清空收件箱、发送电子邮件、管理日历、办理航班值机等等,并且可以接入用户常用的任何聊天APP,所有的操作均可通过WhatsApp、Telegram等平台完成,用户只需通过对话,就能操控设备自动执行各类任务。

25

2026.01.29

clawdbot龙虾机器人官网入口 clawdbot ai官方网站地址
clawdbot龙虾机器人官网入口 clawdbot ai官方网站地址

clawdbot龙虾机器人官网入口:https://clawd.bot/,clawdbot ai是一个“有灵魂”的AI助手,可以帮用户清空收件箱、发送电子邮件、管理日历、办理航班值机等等,并且可以接入用户常用的任何聊天APP,所有的操作均可通过WhatsApp、Telegram等平台完成,用户只需通过对话,就能操控设备自动执行各类任务。

16

2026.01.29

Golang 网络安全与加密实战
Golang 网络安全与加密实战

本专题系统讲解 Golang 在网络安全与加密技术中的应用,包括对称加密与非对称加密(AES、RSA)、哈希与数字签名、JWT身份认证、SSL/TLS 安全通信、常见网络攻击防范(如SQL注入、XSS、CSRF)及其防护措施。通过实战案例,帮助学习者掌握 如何使用 Go 语言保障网络通信的安全性,保护用户数据与隐私。

8

2026.01.29

俄罗斯Yandex引擎入口
俄罗斯Yandex引擎入口

2026年俄罗斯Yandex搜索引擎最新入口汇总,涵盖免登录、多语言支持、无广告视频播放及本地化服务等核心功能。阅读专题下面的文章了解更多详细内容。

622

2026.01.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号