python 邮箱自动化操作(2) 邮件的自动发送 smtplib yagmail 非常详细!有范例!!

版本

python 3.9

yagmail: 0.15.293

smtplib 和 yagmail说明

smtplib是python标准库中的一个模块,它是基于SMTP协议自动发送邮件,在使用之前,需要在邮箱设置中打开SMTP协议,比如qq邮箱:

yagmail是一个第三方库,它封装了smtplib,用过smtplib发送邮件的人才可以知道yagmail是有多么好用!API文档

yagmail详解

这个方法确实简单,可以直接看范例,根据需要删减就好了

邮箱登录

在登录邮箱之前一定要打开邮箱设置中的SMIP协议,如上述 “smtplib 和 yagmail说明”

yag = yagmail.SMTP(user="邮箱地址", password="授权码", host='smtp.qq.com')

# 这里是以qq邮箱为例 不同的邮箱会有不同的host 甚至需要设置端口port(默认465) 需在邮箱设置中查看

编辑邮件内容

可以根据以下编辑邮件内容,然后调用send函数就完成了邮件发送。

send函数的部分参数详解

1. 收件人

它可以有四种数据格式,当收件人只有一个时,可以是字符串,如:

to = "someone@mail.com"

单个或多个收件人时,可以是列表或者元组,如:
 

to = ["receiver1@mail.com", "receiver2@mail.com"] 

to = ("receiver1@mail.com", "receiver2@mail.com")

还可以是字典:

to = {
    'aliased@mike.com': 'Mike',
    'aliased@fred.com': 'Fred'
}
2. 正文

正文可以添加三种格式:文本图片html

另外它还有一种yagmail.raw()的方法,用来确保将字符串视为文本,用处不是很大。

contents = [
    "文本",
    yagmail.inline(r"path.jpg"), # 内嵌图片
    "<h1>html</h1>", # html格式 
]

范例

import yagmail


# 邮箱登录
yag = yagmail.SMTP(user="邮箱地址", password="授权码", host='smtp.qq.com')  # 以qq邮箱为例

# 编辑邮件内容
to = ["收件人1", "收件人2"]
subject = "标题"
contents = [
    "文本",
    yagmail.inline(r"图片本地路径"), # 内嵌图片
    "<h1>html</h1>", # html格式 
]
attachments = [r"附件本地路径1", r"附件本地路径2"]
cc = ["抄送人1", "抄送人2"]
bcc = ['密送人1', "密送人2"]

# 发送邮件
yag.send(to, subject, contents, attachments, cc, bcc)

# 无法发送的电子邮件将存储在 self.unsent 使用此函数可尝试再次发送这些
yag.send_unsent()

# 关闭与SMTP服务器的连接
yag.close()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值