Python SMTP发送电子邮件的示例


Posted in Python onSeptember 23, 2020

简单邮件传输协议(SMTP)是一种协议,用于处理在电子邮件服务器之间发送电子邮件和路由电子邮件。Python提供了smtplib模块,该模块定义了一个SMTP客户端会话对象,该对象可用于将邮件发送到具有SMTP或ESMTP侦听器守护程序的任何Internet计算机。
SMTP对象具有一个称为sendmail的实例方法,该方法通常用于完成邮件的发送工作。它需要三个参数-

  • sender- 具有发件人地址的字符串。
  • receivers- 字符串列表,每个接收者一个。
  • message- 以各种RFC中指定的格式格式化为字符串的消息。

Python SMTP示

这是使用Python脚本发送一封电子邮件的简单方法。示例代码:

#!/usr/bin/python3

import smtplib

sender = 'from@fromdomain.com'
receivers = ['to@todomain.com']

message = """From: From Person <from@fromdomain.com>
To: To Person <to@todomain.com>
Subject: SMTP e-mail test

This is a test e-mail message.
"""

try:
  smtpObj = smtplib.SMTP('localhost')
  smtpObj.sendmail(sender, receivers, message)     
  print "Successfully sent email"
except SMTPException:
  print "Error: unable to send email"

在这里,已经在邮件中放置了一个基本电子邮件,使用三重引号,请注意正确设置标题的格式。电子邮件需要一个“发件人”,“收件人”和“主题”标头,并以空白行与电子邮件正文分开。

要发送邮件,需要使用smtpObj连接到本地计算机上的SMTP服务器。然后,调用sendmail方法与消息,发件人地址和目标地址一起用作参数(即使发件人和收件人地址位于电子邮件本身之内,但它们并不总是用于路由邮件)。

如果您不在本地计算机上运行SMTP服务器,则可以使用smtplib客户端与远程SMTP服务器通信。除非您使用Webmail服务(例如gmail或Yahoo! Mail),否则您的电子邮件提供商必须已向您提供了可以提供它们的外发邮件服务器详细信息,如下所示-

mail = smtplib.SMTP('smtp.gmail.com', 587)

使用Python发送HTML电子邮件当使用Python发送文本消息时,所有内容均被视为简单文本。即使您在文本消息中包含HTML标签,它也将显示为简单文本,并且HTML标签不会根据HTML语法进行格式化。但是,Python提供了将HTML消息作为实际HTML消息发送的选项。

发送电子邮件时,可以指定Mime版本,内容类型和字符集来发送HTML电子邮件。
示例代码

以下是将HTML内容作为电子邮件发送的示例 -

#!/usr/bin/python3

import smtplib

message = """From: From Person <from@fromdomain.com>
To: To Person <to@todomain.com>
MIME-Version: 1.0
Content-type: text/html
Subject: SMTP HTML e-mail test

This is an e-mail message to be sent in HTML format

<b>This is HTML message.</b>
<h1>This is headline.</h1>
"""

try:
  smtpObj = smtplib.SMTP('localhost')
  smtpObj.sendmail(sender, receivers, message)     
  print "Successfully sent email"
except SMTPException:
  print "Error: unable to send email"

以上就是Python SMTP发送电子邮件的示例的详细内容,更多关于Python SMTP发送电子邮件的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Django框架中的对象列表视图使用示例
Jul 21 Python
Python使用正则表达式抓取网页图片的方法示例
Apr 21 Python
Python正则匹配判断手机号是否合法的方法
Dec 09 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
Jan 23 Python
python图形开发GUI库pyqt5的基本使用方法详解
Feb 14 Python
Django Model中字段(field)的各种选项说明
May 19 Python
Python3批量创建Crowd用户并分配组
May 20 Python
Python decimal模块使用方法详解
Jun 08 Python
Python3.9 beta2版本发布了,看看这7个新的PEP都是什么
Jun 10 Python
Python实现JS解密并爬取某音漫客网站
Oct 23 Python
python语言实现贪吃蛇游戏
Nov 13 Python
Python中OpenCV实现查找轮廓的实例
Jun 08 Python
python两个list[]相加的实现方法
Sep 23 #Python
python matplotlib库的基本使用
Sep 23 #Python
15个应该掌握的Jupyter Notebook使用技巧(小结)
Sep 23 #Python
Python读取多列数据以及用matplotlib制作图表方法实例
Sep 23 #Python
PyCharm 2020.2下配置Anaconda环境的方法步骤
Sep 23 #Python
python中如何打包用户自定义模块
Sep 23 #Python
python使用matplotlib绘制折线图的示例代码
Sep 22 #Python
You might like
php 什么是PEAR?
2009/03/19 PHP
php实现查看邮件是否已被阅读的方法
2013/12/03 PHP
php安装dblib扩展,连接mssql的具体步骤
2017/03/02 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
2019/04/10 PHP
javascript页面动态显示时间变化示例代码
2013/12/18 Javascript
jqGrid读取选择的多行的某个属性代码
2014/05/18 Javascript
extjs每个组件要设置唯一的ID否则会出错
2014/06/15 Javascript
js实现横向百叶窗效果网页切换动画效果的方法
2015/03/02 Javascript
js操作css属性实现div层展开关闭效果的方法
2015/05/11 Javascript
在vue中使用jointjs的方法
2018/03/24 Javascript
浅谈JS对象添加getter与setter的5种方法
2018/06/09 Javascript
详解如何使用webpack打包多页jquery项目
2019/02/01 jQuery
vue+elementUI 复杂表单的验证、数据提交方案问题
2019/06/24 Javascript
layui button 按钮弹出提示窗口,确定才进行的方法
2019/09/06 Javascript
微信小程序自定义组件components(代码详解)
2019/10/21 Javascript
Vue extend的基本用法(实例详解)
2019/12/09 Javascript
js实现选项卡效果
2020/03/07 Javascript
vue3.0+vue-router+element-plus初实践
2020/12/02 Vue.js
vue 使用 sortable 实现 el-table 拖拽排序功能
2020/12/26 Vue.js
Python 提取dict转换为xml/json/table并输出的实现代码
2016/08/28 Python
Python HTTP客户端自定义Cookie实现实例
2017/04/28 Python
Python使用django搭建web开发环境
2017/06/09 Python
瑞士国际航空官网:SWISS
2016/07/21 全球购物
Ralph Lauren英国官方网站:Ralph Lauren UK
2018/04/03 全球购物
Nebula美国官网:便携式投影仪
2019/03/15 全球购物
写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔
2015/07/30 面试题
电子商务专业在校生实习自我鉴定
2013/09/29 职场文书
幼儿教育感言
2014/02/05 职场文书
师范教师专业大学生职业生涯规划范文
2014/03/02 职场文书
语文复习计划
2015/01/19 职场文书
人与自然观后感
2015/06/16 职场文书
2016关于学习党章的心得体会
2016/01/15 职场文书
广告策划的实习心得体会总结!
2019/07/22 职场文书
解决SpringCloud Feign传对象参数调用失败的问题
2021/06/23 Java/Android
FP-growth算法发现频繁项集——发现频繁项集
2021/06/24 Python
华为HarmonyOS3.0强在哪? 看看鸿蒙3.0这7个小功能
2023/01/09 数码科技