前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python利用smtp来发送邮件(带附件)

python利用smtp来发送邮件(带附件)

作者头像
禹都一只猫olei
发布于 2018-05-25 03:31:30
发布于 2018-05-25 03:31:30
9930
举报

运行环境:python2.7python3.x的话,把代码中的中文的字符前的u去掉就好,这是2与3基本的区别

  1. # -*- coding: utf-8 -*-
  2. import smtplib
  3. import email.MIMEMultipart  # import MIMEMultipart
  4. import email.MIMEText  # import MIMEText
  5. import email.MIMEBase  # import MIMEBase
  6. import os.path
  7. import mimetypes
  8. import datetime
  9. import os
  10. from email.header import Header
  11. # today = datetime.date.today()
  12. # yesterday = today - datetime.timedelta(days=1)
  13. From = "%s <*****>" % Header("xxx","utf-8") # 发送邮箱,*****是发送来源的邮箱,xxx是发送邮件时候的标题,
  14. To = " ###"  # 接受邮件的邮箱
  15. file_name = "***"   # 附件名(带路径)
  16. server = smtplib.SMTP_SSL("smtp.exmail.qq.com", 465)
  17. server.login("*****", "password or 授权码")  # 仅smtp服务器需要验证时
  18. # 构造MIMEMultipart对象做为根容器
  19. main_msg = email.MIMEMultipart.MIMEMultipart()
  20. # 构造MIMEText对象做为邮件显示内容并附加到根容器
  21. important = """
  22. 这里面写内容
  23. """
  24. text_msg = email.MIMEText.MIMEText("这是内容的标题" + '\n' + important, _charset="utf-8")
  25. text_msg["Accept-Language"] = "zh-CN"
  26. text_msg["Accept-Charset"]="ISO-8859-1,utf-8"
  27. main_msg.attach(text_msg)
  28. # 设置有中文的字符串,在微软的outlook中乱码,所以才有了上面对中文的设置
  29. # 构造MIMEBase对象做为文件附件内容并附加到根容器
  30. ## 读入文件内容并格式化 [方式1]------------------------------
  31. data = open(file_name, 'rb')
  32. ctype, encoding = mimetypes.guess_type(file_name)
  33. if ctype is None or encoding is not None:
  34.     ctype = 'application/octet-stream'
  35. maintype, subtype = ctype.split('/', 1)
  36. file_msg = email.MIMEBase.MIMEBase(maintype, subtype)
  37. file_msg.set_payload(data.read())
  38. data.close()
  39. email.Encoders.encode_base64(file_msg)  # 把附件编码
  40. ## 设置附件头
  41. basename = os.path.basename(file_name)
  42. file_msg.add_header('Content-Disposition', 'attachment', filename=basename)  # 修改邮件头
  43. main_msg.attach(file_msg)
  44. # 设置根容器属性
  45. subject = u" 邮件标题"
  46. if not isinstance(subject,unicode):
  47.     subject = unicode(subject)
  48. main_msg['From'] = From
  49. main_msg['To'] = To
  50. main_msg['Subject'] = subject
  51. main_msg['Date'] = email.Utils.formatdate()
  52. # 得到格式化后的完整文本
  53. fullText = main_msg.as_string()
  54. # print('发送成功')
  55. # 用smtp发送邮件
  56. try:
  57.     server.sendmail(From, To, fullText)
  58. finally:
  59.     server.quit()

温馨提示

如果想要做个定时的话,可以借助cronjob实现,具体方式不做多说

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-03-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
python实现发送邮件
[Python]代码     #_*_encoding:utf-8_*_ #script for python3.2 #------------------------------------------------------------------------------- # Name: 发送邮件 # Purpose: # # Author: QiuChangJie # # Created: 10/09/2012 # Copyright: (c)
用户7705674
2021/11/02
3530
Cypress执行测试并邮寄发送测试报告
为了高质量的软件交付,组织必须转向自动化流程,手动流程太容易出错,效率低下。对于执行CD和devops的团队来说,自动化变得越来越重要,大家只需要专注在code和review中,其它过程都尽可能的自动化。
wencheng
2020/09/21
1K0
Python 学习入门(5)—— 发送邮件
下载 email-6.0.0a1.tar.gz 或 Mail-2.1.0.tar.gz
阳光岛主
2019/02/19
7110
Python 学习入门(5)—— 发送邮件
python 使用stmp发送邮件
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。
py3study
2020/01/06
1.1K0
python自动发邮件总结及实例说明
python发邮件需要掌握两个模块的用法,smtplib和email,这俩模块是python自带的,只需import即可使用。smtplib模块主要负责发送邮件,email模块主要负责构造邮件。
周小董
2019/03/25
1.4K0
python自动发邮件总结及实例说明
Python实现自动发送邮件(详解)
这点很关键,别忘了去开启SMTP, 别忘了去开启SMTP,否则邮件是无法发送成功的 。然后你还需要点击下面生成授权码,这个授权码才是使用Python发送邮件时的真正密码。
全栈程序员站长
2022/11/17
1.2K0
Python实现自动发送邮件(详解)
基于UIAutomation+Python+Unittest+Beautifulreport的WindowsGUI自动化测试框架common目录解析
注: 1、本文为本站首发,他用请联系作者并注明出处,谢谢! 2、源码解析/common目录 ---- 1 框架工具说明 工具 说明 使用Unittest框架 开源自动化测试框架,直接使用 批量或指定用例运行 Unittest框架可支持此功能 log日志 使用Python的logging库即可 生成HTML测试报告 使用BeautifulReport模块可实现此功能 用例设计和结果分离 PO模式 用户登录封装 直接把登录功能模块化,使用Unittest框架中的setup,teardown即可 定制测试报告模板
虫无涯
2023/02/17
9210
九、Python发送QQ邮件(SMTP)
看了廖雪峰老师的教程: 一封电子邮件的旅程就是 发件人 -> MUA -> MTA -> MTA -> 若干个MTA -> MDA <- MUA <- 收件人 有了上述基本概念,要编写程序来发送和接收邮件,本质上就是: 编写MUA把邮件发到MTA; 编写MUA从MDA上收邮件。 发邮件时,MUA和MTA使用的协议就是SMTP:Simple Mail Transfer Protocol,后面的MTA到另一个MTA也是用SMTP协议。 收邮件时,MUA和MDA使用的协议有两种:POP:Post Of
酱紫安
2018/04/16
2.5K0
Python模块smtplib让群发邮件变得简单1.smtplib模块介绍2.email.utils模块使用3.发送email的其它几个模块4.实例
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。 Python创建 SMTP 对象语法如下:
Python攻城狮
2018/08/23
8610
Python模块smtplib让群发邮件变得简单1.smtplib模块介绍2.email.utils模块使用3.发送email的其它几个模块4.实例
python自动发送邮件
每天发日报的你是不是想找个机器人代替你做这些重复性无技术含量的工作,来试试python自动发送邮件吧
诡途
2022/05/09
6610
python接口自动化(三十三)-python自动发邮件总结及实例说明番外篇——下(详解)
  发邮件前我们需要了解的是邮件是怎么一个形式去发送到对方手上的,通俗点来说就是你写好一封信,然后装进信封,写上地址,贴上邮票,然后就近找个邮局,把信仍进去,其他的就不关心了,只是关心时间,而电子邮件不像日常发送邮件的按天算,时间都是按
北京-宏哥
2019/09/11
1.6K0
python接口自动化(三十三)-python自动发邮件总结及实例说明番外篇——下(详解)
Python 基于Python实现邮件发送
注:需要修改mimetypes.py文件(该文件可通过文章底部的网盘分享连接获取),否则会报错,类似如下
授客
2019/09/11
6300
Python 基于Python实现邮件发送
python发送邮件(二)——smtplib模块和email模块
一、模块介绍 1、smtplib 模块(用于邮件的发送) ①理论解释 smtplib.SMTP([host[, port[, local_hostname[, timeout]]]]) 通过这个语句,可以向SMTP服务器发送指令,执行相关操作(如:登陆、发送邮件)。所有的参数都是可选的。 host:smtp服务器主机名 port:smtp服务的端口,默认是25;端口号可以省略。 但是使用25号端口有一个问题,就是保密性不够好,数据都是明文传输,没有加密。 现在一般都推荐使用SSL,Secure So
Elsa_阿尼
2021/07/27
5.6K0
python发送邮件(二)——smtplib模块和email模块
Unittest接口和UI自动化测试框架中的发送邮件服务如何使用?
在写Unittest接口和UI自动化测试的时候,需要封装邮件模块来进行发送邮件。如何做呢?简单做一下整理。
虫无涯
2023/01/30
1.2K0
python3 发送邮件功能
发信邮箱是腾讯企业邮箱。开发环境 Windows7。 主要使用smtplib来实现发邮件的功能。 简单的发送邮件功能 # 发送邮件 import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText def send_email(): fromaddr = "from1@your_email.com" # 你的发件邮箱 toaddr = "to1@your_e
AnRFDev
2021/02/01
3820
python3使用smtplib发送邮件,带xlsx附件
https://www.cnblogs.com/xiao987334176/p/10022026.html
py3study
2020/03/13
3.8K1
使用 python 发送邮件
使用 python 发送邮件,这个也没啥讲的,分享三种方式发送邮件,最后一种三行代码就可以发送邮件,是不是很爽啊,话不多说,直接上代码
andrew_a
2019/08/20
1.4K0
Python3 使用smtplib和em
SMTP (Simple Mail Transfer Protocol)   邮件传送代理 (Mail Transfer Agent,MTA) 程序使用SMTP协议来发送电邮到接收者的邮件服务器。SMTP协议只能用来发送邮件,不能用来接收邮件。大多数的邮件发送服务器 (Outgoing Mail Server) 都是使用SMTP协议。SMTP协议的默认TCP端口号是25。
py3study
2020/01/03
5540
python SMTP自动发送文本,HTML,附件邮件
1.发件人的邮件 比如:sender@163.com,sender@126.com,sender@qq.com,sender@gmal.com
用户8346838
2021/03/11
1.4K0
Python模块学习--email
SMTP (Simple Mail Transfer Protocol)   邮件传送代理 (Mail Transfer Agent,MTA) 程序使用SMTP协议来发送电邮到接收者的邮件服务器。SMTP协议只能用来发送邮件,不能用来接收邮件。大多数的邮件发送服务器 (Outgoing Mail Server) 都是使用SMTP协议。SMTP协议的默认TCP端口号是25。
py3study
2020/01/10
1.5K0
推荐阅读
相关推荐
python实现发送邮件
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档