你知道怎么用Python发送邮件吗?


你知道怎么用Python发送邮件吗?文章插图
作者 | 陈熹
来源 | 早起Python(ID:zaoqi-python)
头图 | CSDN 下载自东方IC
你知道怎么用Python发送邮件吗?文章插图
前言本文主要对邮件操作基础知识及代码进行介绍 , 用Python发邮件有哪些优势?

  • 批量发送邮件 , 并且各邮件可以不同
  • 高度自定义的定时发送
  • 更有效地管理收件箱

你知道怎么用Python发送邮件吗?文章插图
基本概念有关邮件的基本概念 , 可以查看下图
你知道怎么用Python发送邮件吗?文章插图
你知道怎么用Python发送邮件吗?文章插图
代码操作前的配置以网易163邮箱为例 , 邮箱需要先开通POP3/SMTP/IMAP , 可以按照下面步骤执行
你知道怎么用Python发送邮件吗?文章插图
你知道怎么用Python发送邮件吗?文章插图
你知道怎么用Python发送邮件吗?文章插图
注意 , 之后我们在代码里登录邮箱用的不是账号密码 , 而是授权码
你知道怎么用Python发送邮件吗?文章插图
如果是QQ邮箱 , 也可类似操作
你知道怎么用Python发送邮件吗?文章插图
你知道怎么用Python发送邮件吗?文章插图
你知道怎么用Python发送邮件吗?文章插图
安装依赖模块
  • yagmail:基于 SMTP 的发邮件模块
  • keyring:访问系统密钥环服务 , 方便、安全地储存密码

你知道怎么用Python发送邮件吗?文章插图
在命令行中键入以下代码可同时安装两个模块:
pip install yagmail keyring --user
你知道怎么用Python发送邮件吗?文章插图
具体代码操作1、发送单个邮件基本代码逻辑如下
yagmail.SMTP(user=用户名, host=SMTP服务器域名)
yagmail.SMTP(user=用户名, password=授权码, host=SMTP服务器域名)
mail.send(收件人用户名 , 邮件标题 , 邮件内容)
所以登陆邮箱并发送一封邮件的代码可以这样写
import yagmailmail = yagmail.SMTP(user='chenx595@163.com', host='smtp.163.com') contents = ['第一段内容', '第二段内容'] mail.send('chenx595@163.com', '这是一封邮件', contents)注意 , yagmail基础设置中服务器地址需要和所用的邮箱对应!
2、群发邮件从下图可以看到 , 将收件的邮箱组合成列表形式 , 即可给多个联系人群发邮件
你知道怎么用Python发送邮件吗?文章插图
3、发送带有HTML样式的邮件需要具备一定的前端知识 , 这里以附带链接为例 链接显示的文字
import yagmailmail = yagmail.SMTP(user='chenx595@163.com', host='smtp.163.com') contents = ['第一段', '第二段', '某度'] mail.send('chenx595@163.com', '带HTML样式的邮件', contents)4、发送带有附件的邮件yagmail非常智能 , 可以 识别 contents 列表中本地路径作为附件
import yagmailmail = yagmail.SMTP(user='chenx595@163.com', host='smtp.163.com') contents = ['第一段', '第二段', r'C:\xxx\xxx'] mail.send('chenx595@163.com', '带HTML样式的邮件', contents)5、给邮件正文嵌入图片这里就出现问题了 , 我们往往把图片存在本地 , 如果按上述的代码在内容列表中放图片路径的话 , 会以附件形式存图片 。
那么 , 如何用代码将图片嵌入正文中呢 , 用到的代码为:yagmail.inline('图片路径')]
import yagmailmail = yagmail.SMTP(user='chenx595@163.com', host='smtp.163.com') contents = ['第一段', '第二段', yagmail.inline(r'C:\xxx\xxx')] mail.send('chenx595@163.com', '带HTML样式的邮件', contents)对添加附件的代码稍加改动 , 将你需要发送的图片路径替换即可!
你知道怎么用Python发送邮件吗?文章插图
你知道怎么用Python发送邮件吗?文章插图
你知道怎么用Python发送邮件吗?文章插图