Python基于smtplib模块发送邮件代码实例


Posted in Python onMay 29, 2020

smtplib模块负责发送邮件:是一个发送邮件的动作,连接邮箱服务器,登录邮箱,发送邮件(有发件人,收信人,邮件内容)。

email模块负责构造邮件:指的是邮箱页面显示的一些构造,如发件人,收件人,主题,正文,附件等。

email模块下有mime包,mime英文全称为“Multipurpose Internet Mail Extensions”,即多用途互联网邮件扩展,是目前互联网电子邮件普遍遵循的邮件技术规范。

该mime包下常用的有三个模块:text,image,multpart。

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header

#邮件服务器信息
smtp_server = "smtp.qq.com"
port = 465 # For starttls
sender_email = "12345689@qq.com"
password="" #get password from mailsetting

#发送邮件信息,可以发送给多个收件人
receivers=["12345689@163.com","12345689@qq.com"]
subject="This is import Python SMTP 邮件(文件传输) 多媒体测试"

# message = MIMEText(text, "plain", "utf-8") #文本邮件
message = MIMEMultipart()
message["Subject"] = Header(subject, "utf-8")
message["from"] = sender_email
message["to"] = ",".join(receivers)
# 邮件正文内容
text="""
Dear Sir:
how are you ? \n
for detail information pls refer to attach1。\n
The files you need are as followed.\n
If you have any concern pls let me known.\n
enjoy your weekend.\n
BEST REGARDS \n
"""
# message.attach(MIMEText('for detail information pls refer to attach1。\n The files you need are as followed. \n If you have any concern pls let me known. \n enjoy your weekend', 'plain', 'utf-8')
message.attach(MIMEText(text,'plain','utf-8'))

# 构造附件1
attach_file1='IMG1965.JPG'

attach1 = MIMEText(open(attach_file1, 'rb').read(), 'base64', 'utf-8')
attach1["Content-Type"] = 'application/octet-stream'
attach1["Content-Disposition"] = 'attachment; filename={0}'.format(attach_file1)
message.attach(attach1)

# 构造附件2
attach_file2='YLJ.jpg'
attach2 = MIMEText(open(attach_file2, 'rb').read(), 'base64', 'utf-8')
attach2["Content-Type"] = 'application/octet-stream'
attach2["Content-Disposition"] = 'attachment; filename={0}'.format(attach_file2)
message.attach(attach2)

# Try to log in to server and send email
# server = smtplib.SMTP_SSL(smtp_server,port)
server = smtplib.SMTP_SSL(smtp_server,port)

try:
  server.login(sender_email, password)
  server.sendmail(sender_email,receivers,message.as_string())
  print("邮件发送成功!!!")
  print("Mail with {0} & {1} has been send to {2} successfully.".format(attach_file1,attach_file2,receivers))
except Exception as e:
  # Print any error messages to stdout
  print("Error: 无法发送邮件")
  print(e)
finally:
  server.quit()

结果

邮件发送成功!!!

Mail with IMG1965.JPG & IMG1963.jpg has been send to ['12345689@163.com', '12345689@qq.com'] successfully.

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中的is和id用法分析
Jan 26 Python
在Python程序员面试中被问的最多的10道题
Dec 05 Python
对python 各种删除文件失败的处理方式分享
Apr 24 Python
python微信好友数据分析详解
Nov 19 Python
Python模块、包(Package)概念与用法分析
May 31 Python
opencv转换颜色空间更改图片背景
Aug 20 Python
python 中xpath爬虫实例详解
Aug 26 Python
Python实现隐马尔可夫模型的前向后向算法的示例代码
Dec 31 Python
如何基于Python代码实现高精度免费OCR工具
Jun 18 Python
python 发送get请求接口详解
Nov 17 Python
Django利用AJAX技术实现博文实时搜索
May 06 Python
详解OpenCV获取高动态范围(HDR)成像
Apr 29 Python
Django通过json格式收集主机信息
May 29 #Python
Python小白不正确的使用类变量实例
May 29 #Python
python小白切忌乱用表达式
May 29 #Python
Python爬虫实现百度翻译功能过程详解
May 29 #Python
Django中的模型类设计及展示示例详解
May 29 #Python
如何理解Python中包的引入
May 29 #Python
浅谈django channels 路由误导
May 28 #Python
You might like
《魔兽世界》惊魂幻象将获得调整
2020/03/08 其他游戏
php.ini 中文版
2006/10/28 PHP
解析CodeIgniter自定义配置文件
2013/06/18 PHP
php三维数组去重(示例代码)
2013/11/26 PHP
php下载文件源代码(强制任意文件格式下载)
2014/05/09 PHP
基于PHP+Jquery制作的可编辑的表格的代码
2011/04/10 Javascript
js中字符替换函数String.replace()使用技巧
2011/08/14 Javascript
js弹出模式对话框,并接收回传值的方法
2013/03/12 Javascript
使用js获取图片原始尺寸
2014/12/03 Javascript
javascript的switch用法注意事项分析
2015/02/02 Javascript
JQuery中attr方法和removeAttr方法用法实例
2015/05/18 Javascript
JS打字效果的动态菜单代码分享
2015/08/21 Javascript
15位和18位身份证JS校验的简单实例
2016/07/18 Javascript
JS中type="button"和type="submit"的区别
2017/07/04 Javascript
jQuery Collapse1.1.0折叠插件简单使用
2017/08/28 jQuery
VueJs使用Amaze ui调整列表和内容页面
2017/11/30 Javascript
vue二级路由设置方法
2018/02/09 Javascript
node.js中fs文件系统目录操作与文件信息操作
2018/02/24 Javascript
基于element-ui的rules中正则表达式
2018/09/04 Javascript
js实现星星海特效的示例
2020/09/28 Javascript
三剑客:offset、client和scroll还傻傻分不清?
2020/12/04 Javascript
python和bash统计CPU利用率的方法
2015/07/10 Python
Python语言实现将图片转化为html页面
2017/12/06 Python
python的Crypto模块实现AES加密实例代码
2018/01/22 Python
Pycharm 2020.1 版配置优化的详细教程
2020/08/07 Python
python 获取字典键值对的实现
2020/11/12 Python
html5 拖拽上传图片实例演示
2013/04/01 HTML / CSS
印度化妆品购物网站:Nykaa
2018/07/22 全球购物
JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
2015/10/22 面试题
开办加工厂创业计划书
2014/01/03 职场文书
国际会议邀请函范文
2014/01/16 职场文书
化学专业大学生职业生涯规划范文
2014/09/13 职场文书
初中生考试作弊检讨书
2014/12/14 职场文书
vue3语法糖内的defineProps及defineEmits
2022/04/14 Vue.js
win10截图快捷键win+shift+s没有反应无法截图怎么解决?
2022/08/14 数码科技
postgresql之greenplum字符串去重拼接方式
2023/05/08 PostgreSQL