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 相关文章推荐
Python的加密模块md5、sha、crypt使用实例
Sep 28 Python
python使用PythonMagick将jpg图片转换成ico图片的方法
Mar 26 Python
Python 数据结构之旋转链表
Feb 25 Python
使用Kivy将python程序打包为apk文件
Jul 29 Python
不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决
Sep 24 Python
django 实现电子支付功能的示例代码
Jul 25 Python
Python opencv实现人眼/人脸识别以及实时打码处理
Apr 29 Python
python Jupyter运行时间实例过程解析
Dec 13 Python
tensorflow 固定部分参数训练,只训练部分参数的实例
Jan 20 Python
Django项目uwsgi+Nginx保姆级部署教程实现
Apr 19 Python
Tensorflow与Keras自适应使用显存方式
Jun 22 Python
Python趣味挑战之实现简易版音乐播放器
May 28 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去掉URL网址中带有PHPSESSID的配置方法
2014/07/08 PHP
PHP JSON出错:Cannot use object of type stdClass as array解决方法
2014/08/16 PHP
PHP date()格式MySQL中插入datetime方法
2019/01/29 PHP
基于laravel-admin 后台 列表标签背景的使用方法
2019/10/03 PHP
hover的用法及live的用法介绍(鼠标悬停效果)
2013/03/29 Javascript
javascript仿php的print_r函数输出json数据
2013/09/13 Javascript
js判断字符长度以及中英文数字等
2013/12/31 Javascript
jquery对table中各数据的增加、保存、删除操作示例
2014/05/14 Javascript
jquery操作checked属性以及disabled属性的多种方法
2014/06/20 Javascript
jQuery创建DOM元素实例解析
2015/01/19 Javascript
JavaScript运行过程中的“预编译阶段”和“执行阶段”
2015/12/16 Javascript
jQuery DataTables插件自定义Ajax分页实例解析
2020/04/28 Javascript
jQuery Ajax 上传文件处理方式介绍(推荐)
2016/06/30 Javascript
C#微信小程序服务端获取用户解密信息实例代码
2017/03/10 Javascript
小程序最新获取用户昵称和头像的方法总结
2019/09/23 Javascript
vue实现图片懒加载的方法分析
2020/02/05 Javascript
[03:26]回顾2015国际邀请赛中国区预选赛
2015/06/09 DOTA
Python struct.unpack
2008/09/06 Python
详解C++编程中一元运算符的重载
2016/01/19 Python
pandas创建新Dataframe并添加多行的实例
2018/04/08 Python
Python 类的特殊成员解析
2018/06/20 Python
Python Numpy数组扩展repeat和tile使用实例解析
2019/12/09 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
2020/04/22 Python
python多进程使用函数封装实例
2020/05/02 Python
基于Python把网站域名解析成ip地址
2020/05/25 Python
玩具反斗城美国官网:Toys"R"Us
2016/09/17 全球购物
中国高端鲜花第一品牌:roseonly(一生只送一人)
2017/02/12 全球购物
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/09/18 面试题
Delphi工程师笔试题
2013/09/21 面试题
农民入党思想汇报
2014/01/03 职场文书
2014年教师节寄语
2014/04/03 职场文书
全国法制宣传日活动总结2014
2014/11/01 职场文书
神农溪导游词
2015/02/11 职场文书
Python基础之tkinter图形化界面学习
2021/04/29 Python
java实现对Hadoop的操作
2021/07/01 Java/Android
JavaCV实现照片马赛克效果
2022/01/22 Java/Android