在实际运用中,我们可能需要通过电子邮件告诉我们 Python 运行的结果的是否与预期的一致。现在我们就来看一下,怎么通过 Python 发送邮件。

这个示例中我们需要用到的第三方库有:

•smtplib•email.mime.text 里面的 MIMEText•email.header 里面的 Header

* 如果没有对应的库,需要使用 pip install 进行安装

代码

import smtplibfrom email.mime.text import MIMETextfrom email.header import Headersubject = "Python E-Mail Test"sender = ""to_receiver = [""]cc_receiver = [""]receiver = to_receiver + cc_receivermessage = MIMEText("Hi,\n\nThis is Python Challenge test email, please ignore it. \n\nRegards,\nAaron" , "plain", "UTF-8")message["Subject"] = Header(subject, "UTF-8")message["From"] = sendermessage['To'] = ";".join(to_receiver)message["Cc"] = ";".join(cc_receiver)try:    smtpObj = smtplib.SMTP("")    smtpObj.sendmail(sender, receiver, message.as_string())    print("Email sent successfully")except smtplib.SMTPException:    print("Error")

代码说明

使用 import 和 from ... import ... 导入第三方库

import smtplibfrom email.mime.text import MIMETextfrom email.header import Header

通过变量指定邮件主题,收件人等信息,其中 subject 是邮件的主题;sender 是发件人的地址;to_ receiver 是收件人的邮件地址,是一个列表,你可以在这个列表中添加多个收件人的地址;cc_receiver 是抄送的邮件地址,也是一个列表,在这个列表中也可以添加多个抄送地址;将 to_ receiver 和 cc_receiver 合并,就是所有收件人的地址。

subject = "Python E-Mail Test"sender = ""to_receiver = [""]cc_receiver = [""]receiver = to_receiver + cc_receiver

通过 MIMEText 编写邮件正文,正文的内容有三部分,第一部分是你要发送的邮件内容,可以使用转义字符(如,\n, \t 等)改变内容的格式;然后指定邮件的文本格式,我们使用的是 plain(纯文本),你也可以将 plain 换成 html,使用 html 格式;最后面是内容的编码,我使用的是 UTF-8;最后将这些内容赋值给一个变量 message,这个就使我们我们要发送的内容。

                message = MIMEText("Hi,\n\nThis is Python Challenge test email, please ignore it. \n\nRegards,\nAaron" , "plain", "UTF-8")            

将前面定义的邮件主题变量 subject 通过 hearder 添加到邮件内容中,然后在邮件的 from 栏中添加 sender 的邮件地址;将 to_receiver 变量中的地址添加到邮件的 to 栏中,如果 to_receiver 中有多个地址,则使用 隔开;将 cc_receiver 中的邮件地址,添加到邮件的 cc 栏中,如果 cc_receiver 有多个地址,则使用 隔开。

message["Subject"] = Header(subject, "UTF-8")message["From"] = sendermessage['To'] = ";".join(to_receiver)message["Cc"] = ";".join(cc_receiver)

try ... except ... 是 Python 中的异常处理,可以在出错的情况下,跳过错误,继续运行,在本示例中,这是代码的最后一部分,不管出没出错,这段代码运行完都会结束,所有我们这里的异常处理,就只有 print 一个 “Error” 信息。

使用 smtplib.SMTP 指定发送邮件使用的 SMTP 服务器地址,并将赋值给一个变量 smtp;然后使用 sendmail 发送电子邮件,并指定发件人 sender,所有收件人 receiver,以及使用 message.as_string() 将 message 的 MIMEText 对象转换成 str;使用 smtp.quit() 结束 SMTP 会话,并 print 一个信息,告诉你邮件发送已经完成。

try:    smtp = smtplib.SMTP("")    smtp.sendmail(sender, receiver, message.as_string())    print("Email sent successfully")except smtplib.SMTPException:    print("Error")

代码运行结果:

打开收件人邮件,验证是否收到了邮件

补充

在某些情况下,我们没有自己的 SMTP 服务器,只能使用第三方提供的 SMTP 服务器,如,qq 邮箱。

那么我们需要添加一些参数来指定用户名密码,如:

mail_user = "xxxxxxxxxx@qq.com"     # 用户名mail_password = "xxxxxxxxxxx"      # 口令

* 在 qq 邮箱中,如果你需要使用 SMTP 功能,你需要到设置里面开启 SMTP 功能,并设置一个授权码,使用这个授权码代替 qq 邮箱密码。

然后再发送代码的部分补充上 SMTP login:

try:    smtpObj = smtplib.SMTP_SSL("", 465)    smtpObj.login(mail_user, mail_password)    smtpObj.sendmail(sender, receivers, message.as_string())    print("Email sent successfully")except smtplib.SMTPException:    print("Error")

* qq 邮箱需要使用 ssl, 所以这里使用的 SMTP_SSL,而不是 SMTP,并且端口使用的是 465,而不是默认的 25(如果使用默认端口,端口可以忽略不写)。


☆ END ☆

发送邮件_使用 Python 发送电子邮件相关推荐

  1. python电子邮件地址怎么写_用Python发送电子邮件

    今天给大家分享如何用Python自动发送电子邮件,当我们在云服务器上部署了爬虫,就希望当爬虫发生异常情况的时候能通过自动发送电子邮件来通知我们.因此学会用Python程序自动发送邮件能减轻不少爬虫监控 ...

  2. 使用Python发送电子邮件

    by Arjun Krishna Babu 通过Arjun Krishna Babu 如何使用Python发送电子邮件 (How to send emails using Python) As a l ...

  3. 两封邮件合并转发_用Python发送自定义电子邮件

    电子邮件仍然是生活中的一个事实.尽管存在各种缺陷,但它仍然是向大多数人发送信息的最佳方式,尤其是以允许消息排队等待收件人的自动化方式. 我的工作重点之一是Feddora社区行动和影响协调员给人们一个关 ...

  4. python群发邮箱软件下载_用python群发电子邮件

    python作为一款编程语言,其用处多多,今天一米软件就来教教大家用python群发电子邮件怎么做. 1. SMTP 服务器介绍 SMTP(Simple Mail Transfer Protocol) ...

  5. python怎么发送邮件_在Python如何使用SMTP发送邮件

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. python的smtplib提供了一 ...

  6. 用python群发邮件_使用Python实现电子邮件群发功能

    原标题:使用Python实现电子邮件群发功能 在某些应用中,可能会需要由管理员给所有用法群发电子邮件,或者类似的应用.本文代码使用Python详细模拟了这个过程. importemail fromem ...

  7. email python_神器:让python发送电子邮件像傻瓜一样简单

    用过python其他邮件模块老铁们吼一声--tm是给人用的吗? py3_email超简单,超易用. 以近乎傻瓜式的方式发送邮件 到底有多简单,请看:添加标题: add_title() 添加文本: ad ...

  8. python 发送邮件_利用Python 发送邮件

    原标题:利用Python 发送邮件 概要 我们都知道SMTP(简单邮件传输协议),是一组用于从原地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式.SMTP规定电子邮件应该如何格式化.如何加密, ...

  9. java ssl发送邮件_通过SSL发送的Java邮件

    java ssl发送邮件 抽象 本博客的目的是演示如何使用Java Mail通过具有SSL连接的SMTP服务器发送电子邮件. 免责声明 这篇文章仅供参考. 在使用所提供的任何信息之前,请认真思考. 从 ...

最新文章

  1. Android中Context 的理解
  2. 编程入门python语言是多大孩子学的-不学点编程,将来怎么给孩子辅导作业―Python新手入门教程...
  3. 『宝藏 状态压缩DP NOIP2017』
  4. [图示]营销理论:不同时代的用户如何接受一个新事物?
  5. div中的内容水平垂直居中
  6. 使用脚本编写 Vim 编辑器,第 4 部分: 字典
  7. 网页无障碍php,【译】开发无障碍的Web组件
  8. ansible-handlers
  9. 合成未来宝宝照片_父母照片重叠是宝宝长相?关晓彤鹿晗颜值逆天,邓超孙俪……...
  10. Swoole 源码安装
  11. 拷贝构造函数和赋值构造函数的区别
  12. php地名转换成拼音,php汉字转拼音_php中怎么将中文转换拼音
  13. STM32接电机驱动,杜邦线供电,然后反烧问题
  14. android获取其他app布局,关于android:如何从App的(布局)XML变量中获取Manifest版本号?...
  15. Matlab数字图像处理学习记录【1】——准备与基本原理
  16. 柠檬班接口测试Tomcat+MySQL测试环境搭建
  17. macbook黑屏_MacBook维修 苹果笔记本电脑进水不开机
  18. 趣店季报图解:营收3.8亿同比降47% 股价重回1美元以上
  19. sql中return/break/continue解释
  20. List多条件组合排序

热门文章

  1. SAP ABAP实用技巧介绍系列之 How is configuration data loaded
  2. 如何在Github里创建organization和代码仓库
  3. 算法学习:最近公共祖先
  4. 【测评】海康EliteX---全球首款USB4.0移动固态硬盘,硬盘黑科技,移动闪电侠
  5. Python中span()函数的作用
  6. python保存至对应目录_python相对目录的基本用法(一)
  7. UE4学习-创建基于C++的场景
  8. 数据集按类划分_大数据风控面试(五) 模型评估与优化
  9. vivo手机解锁工具_点燃解锁的多一份激情,vivo NEX双屏版解锁体验报告
  10. 字符串换行截取_textwrap 文本自动换行与填充