Python SMTP 发送邮件

马谦马谦马谦 Python评论664字数 1284阅读 4 分 16 秒阅读模式

一、概述

python 提供了两个包来提供 SMTP 邮件服务支持:smtplib 和 email,前者系统内置,后者需要通过 pip 或者其他方式手动安装。其中 smtplib 提供邮件发送功能,email 负责邮件内容的构造。

二、 smtplib 库介绍

2.1 创建一个 smtp 连接对象

或者

2.2 登录到 smtp 服务器

2.3 发送邮件

发件人地址是一个列表,可以有多个收件人。

2.4 关闭邮箱对象

三、 email 库介绍

2.1 构造一封邮件

第一个参数是邮件的正文内容,第二个参数是文件的类型,plain 表示普通文本,第三个参数是编码格式,默认 ascii 编码。

如果需要发送 html 格式的邮件,需要把第二个参数设置为 html,然后正文部分放传入网页的内容 。

2.2 设置收、发件人以及邮件主题

如果含有中文,需要这样设置:

2.3 添加附件

四、一封最简单的 SMTP 邮件

准备好一个 SMTP 服务器和邮箱帐号 (没有的话可以利用 163 、 QQ 等第三方公司的),发送一封最简单的邮件:

如果各项参数没有设置错误的话邮件就会发送成功了,但是由于我们没有填写任何其他信息,邮件的收件人和主题都是空的:

Python SMTP发送邮件-图片1

五、使用 QQ 邮箱发送邮件

1. 获取 QQ 邮箱授权码

由于 QQ 邮箱的设置,登录第三方邮箱时不能直接使用 QQ 密码登录,需要申请一个授权码用来给第三方客户端登陆。

授权码的获取:

Python SMTP发送邮件-图片2

Python SMTP发送邮件-图片3

Python SMTP发送邮件-图片4 拿到授权码后,就可以使用 qq 邮箱帐号和授权码在第三方客户端登录了。

2. 使用 QQ 邮箱发送邮件

使用上面的代码,把所有的邮箱信息替换成 QQ 邮箱的,然后发送邮件。

结果会报错:

出现这个问题的原因是 QQ 邮箱使用了 SSL 加密传输,不能直接使用上面的方式发送邮件,要把 smtp 对象的创建方式改为:

现在对上面的代码进行修改,添加上发件人和收件人信息,并修改 SMTP 端口为 465

发送成功:

Python SMTP发送邮件-图片5

3. 发送 html 格式邮件并携带附件

先创建一个 test.txt 文件,写入数据 HelloWorld,在邮件中把它发出去。

邮件:

 

Python SMTP发送邮件-图片6

 

 

  最后更新:2017-11-18
马谦马谦马谦
  • 本文由 马谦马谦马谦 发表于 2017 年 10 月 28 日 20:30:51
  • 转载请务必保留本文链接:https://www.dyxmq.cn/program/code/python/python-smtp-send-mail.html
python获取命令行参数 Python

python 获取命令行参数

一、概述 python 获取命令行参数有两种方法,一种是使用 sys 模块直接获取到所有的命令行参数,另一种是使用 getopt 来获取指定标记的参数,后者更灵活一点,但是也复杂一点。 二、 sys 模块获取参数 ...
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证
加载中...