你知道怎么用Python发送邮件吗?
文章插图
作者 | 陈熹
来源 | 早起Python(ID:zaoqi-python)
头图 | CSDN 下载自东方IC
文章插图
前言本文主要对邮件操作基础知识及代码进行介绍 , 用Python发邮件有哪些优势?
- 批量发送邮件 , 并且各邮件可以不同
- 高度自定义的定时发送
- 更有效地管理收件箱
文章插图基本概念有关邮件的基本概念 , 可以查看下图
文章插图
文章插图代码操作前的配置以网易163邮箱为例 , 邮箱需要先开通POP3/SMTP/IMAP , 可以按照下面步骤执行
文章插图
文章插图
文章插图注意 , 之后我们在代码里登录邮箱用的不是账号密码 , 而是授权码
文章插图如果是QQ邮箱 , 也可类似操作
文章插图
文章插图
文章插图安装依赖模块
- yagmail:基于 SMTP 的发邮件模块
- keyring:访问系统密钥环服务 , 方便、安全地储存密码
文章插图在命令行中键入以下代码可同时安装两个模块:
pip install yagmail keyring --user
文章插图具体代码操作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、群发邮件从下图可以看到 , 将收件的邮箱组合成列表形式 , 即可给多个联系人群发邮件
文章插图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)对添加附件的代码稍加改动 , 将你需要发送的图片路径替换即可!
文章插图
文章插图
文章插图
- 看不上|为什么还有用户看不上华为Mate40系列来看看内行人怎么说
- 麒麟|荣耀新款,麒麟810+4800万超清像素,你还在犹豫什么呢?
- 行业|现在行业内客服托管费用是怎么算的
- 桌面|日常使用的软件及网站分享 篇一:几个动态壁纸软件和静态壁纸网站:助你美化你的桌面
- 国产手机|国产手机新品频发,果粉们你们还能忍得住吗?
- 华为|台积电、高通、华为、小米接连宣布!美科技界炸锅:怎么会这样!
- 截长|手机截图怎么截长图
- 精英|业务流程图怎么绘制?销售精英的经验之谈
- 减重|快看!奇瑞蚂蚁都减重了 那你还焦虑什么?
- 助力|上班族的小妙招:怎么弄pdf签名?编辑器来助力
