基本概念

有关邮件的基本概念,可以查看下图

代码操作前的配置

网易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 yagmail
mail = yagmail.SMTP(user='chenx595@163.com', host='smtp.163.com'
contents = ['第一段内容''第二段内容'
mail.send('chenx595@163.com''这是一封邮件', contents)

注意,yagmail基础设置中服务器地址需要和所用的邮箱对应!

2. 群发邮件

从下图可以看到,将收件的邮箱组合成列表形式,即可给多个联系人群发邮件

3. 发送带有HTML样式的邮件

需要具备一定的前端知识,这里以附带链接为例<a href=链接网址>链接显示的文字</a>

import yagmail
mail = yagmail.SMTP(user='chenx595@163.com', host='smtp.163.com'
contents = ['第一段''第二段''<a href="https://www.baidu.com">某度</a>'
mail.send('chenx595@163.com''带HTML样式的邮件', contents)

4. 发送带有附件的邮件

yagmail非常智能,可以识别contents列表中本地路径作为附件

import yagmail
mail = 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 yagmail
mail = yagmail.SMTP(user='chenx595@163.com', host='smtp.163.com'
contents = ['第一段''第二段', yagmail.inline(r'C:\xxx\xxx')] 
mail.send('chenx595@163.com''带HTML样式的邮件', contents)

对添加附件的代码稍加改动,将你需要发送的图片路径替换即可!


©著作权归作者所有:来自51CTO博客作者mb5fe18e32e4691的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 如何在启动Jupyter Notebook时自动执行一段代码?
  2. 原理+代码|深入浅出Python随机森林预测实战
  3. 原理 + 代码|手把手教你用Python实现智能推荐算法
  4. 10行Python代码自动清理电脑内重复文件,解放双手!
  5. 原理+代码|手把手教你使用Python实战反欺诈模型
  6. 原理+代码|Python基于主成分分析的客户信贷评级实战
  7. 原理+代码|Python实战多元线性回归模型
  8. 刺激!一行代码即可导出所有浏览记录
  9. 多图+代码 | 详解Python操作Excel神器openpyxl的各种操作!

随机推荐

  1. 在 Android 4.1上,分析 input -- android
  2. Android UI基础——SeekBar&RatingBar控
  3. Android读写XML(上)
  4. Android layout属性
  5. Android 滑动侧边栏(Sliding Menu)第一种实
  6. Android应用程序怎么刷到手机上
  7. Android Studio 单刷《第一行代码》系列
  8. [APK破解]终极狂飙3D漂移,无限金钱,解锁全
  9. Android属性gravity与layout_gravity的区
  10. RelativeLayout布局用到的主要属性