首页/文章/ 详情

如何用python发邮件

1年前浏览371

大家好,我是李慢慢。

研究用python发邮件,是因为工作中可能会用到。

工作中很多批量化测试任务开启后,我们可能就忙其他事了或者回家了,对于测试的结果,只有想起来后才会去看一眼。这样总觉得心里没谱,要么就是不知道现状如何,要么就是不知道结果如何了。所以想自制一个自动化提醒工具,即用python把测试的结果以邮件的方法发出来,这样自己就能在手机上收到提醒了。其实python也能实现发送手机短信或者微 信信息,如果工作电脑能连接网络,也是个很好的选择。不过短信类总是不能完美地呈现较大量信息,所以我觉得这里还是以邮件为通知方式比较靠谱。

网上资料挺多的,我这里也只是照着画瓢,稍作记录。

1、基本原理

python程序直接访问某个邮箱运营商的服务器,以某个注册用户的名义,向其他邮箱发送邮件。

2、python库

主要是两个库:smtplib库和email库。其中smtplib库负责收发邮件的动作。email库负责创建邮件的内容,比如发送者,接收者,主题,内容等等。

3、发送邮件的测试代码













































import smtplibfrom email.mime.text import MIMETextfrom email.header import Header
# 发送邮箱服务器smtpserver = "smtp.163.com"
# 发送邮箱用户名密码,注意这里的密码为授权码。并非邮箱登录密码。user = "aaaaaaaa@163.com"password = "***********"
# 发送和接收邮箱sender = "aaaaaaaa@163.com"receiver = ["xxxxxxx@163.com", "yyyyyyyy@163.com", "zzzzzzzz@163.com"]for i in range(3):# 发送邮件主题和内容    subject = "来自李慢慢的第{}邮件".format(i+1)    content = "Hello,\n\n这是一封用python脚本发来的邮件哦。仅作测试。请忽略。\n\n-name:limanman\n-data:20221015\n"
# HTML邮件正文    msg = MIMEText(content, 'plain', 'utf-8')    msg['Subject'] = Header(subject, 'utf-8')    msg['From'] = sender    msg['To'] = ",".join(receiver)

# SSL协议端口号要使用465    smtp = smtplib.SMTP_SSL(smtpserver, 465)
# HELO向服务器标志用户身份    smtp.helo(smtpserver)
# 服务器返回结果确认    smtp.ehlo(smtpserver)
# 登录邮箱服务器用户名密码    smtp.login(user, password)
print("Send email start...")print("test send : ", i)    smtp.sendmail(sender, receiver, msg.as_string())    smtp.quit()print("email send end!")


上述代码可以直接套用,使用时只需更改发送者和接收者,和发送的信息内容即可。不过最重要的是获得授权码,即获得发送者在服务器端收到的许可,只有拿到授权码才能发送邮件。不过也不能胡乱测试,听说会被封号的哟。


4、实测效果

上述代码运行的效果。

可以在手机上看到发送的邮件了。


5、授权码的获得

以163邮箱为例。

第一步:登陆网页163邮箱,找到设置并开启IMAP服务。

1687416568060.png

上述的授权密码就是代码中要用到的密码。


哎,大周末还这么卷,造孽吖,真是抱歉了。

休息了,休息了。

来源:车路慢慢
python
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-06-22
最近编辑:1年前
李慢慢
硕士 自动驾驶仿真工程师一枚
获赞 11粉丝 70文章 122课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈