python-发送邮件
作者:互联网
最近学习了python的又一个实用功能一发邮件,特此记录。
首先,邮箱服务器是有很多种的,我们这里采用的是QQ邮箱。
一. 申请token
需要申请token,不然人家怎么知道你是谁
二. 使用上面的token调用API发送邮件
没什么特别的,直接上代码。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
my_sender='1160578893@qq.com' # 发件人邮箱账号
my_pass = 'owgakdlcaatl1saaebagb1' # 发件人邮箱token【就是上面申请的那个】
my_user='yangxiaoru@moyi365.com' # 收件人邮箱账号,我这边发送给自己
def send_TextMail():
res=True
try:
speak="这是文本内容"
msg=MIMEText(speak,'plain','utf-8')
msg['From']=formataddr(["小茹的昵称还是小茹",my_sender]) # 括号里的对应发件人邮箱昵称、发件人邮箱账号
msg['To']=formataddr(["这是收件人的昵称",my_user]) # 括号里的对应收件人邮箱昵称、收件人邮箱账号
msg['Subject']="这是Title" # 邮件的主题,也可以说是标题
server=smtplib.SMTP_SSL("smtp.qq.com", 465) # QQ邮箱的邮箱中的SMTP服务器和端口
server.login(my_sender, my_pass) # 括号中对应的是发件人邮箱账号、邮箱密码
server.sendmail(my_sender,[my_user,],msg.as_string()) # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
server.quit() # 关闭连接
except Exception: # 如果 try 中的语句没有执行,则会执行下面的 ret=False
res=False
return res
def send_HTMLMail():
res=True
try:
speak="""
<h1>Hi, 小茹</h1>
<p>工作了一周辛苦了,系统已经自动为你生成了本周的数据报表,快来看看吧!</p>
<p>本周代码量</p>
<table style="border-style:solid;border-color:#000;border="1";cellspacing="0"">
<tr><td>本周代码量</td> <td>在RD中的排名</td><td>计算方式</td></tr>
<tr><td>300</td><td>56/110</td><td>Gitlab上面的代码变更量</td></tr>
</table>
<p>代码量top3 RD的信息</p>
<table style="border-style:solid;border-color:#000">
<tr><td>排名</td> <td>姓名</td><td>本周代码量</td></tr>
<tr><td>Top1</td><td>z张三</td><td>1290</td></tr>
<tr><td>Top2</td><td>李四</td><td>1090</td></tr>
<tr><td>Top3</td><td>王五</td><td>900</td></tr>
</table>
<p>更多详细信息,请点击<a href="http://ekpss.ekwing.com">这里</a>查看</p>
"""
msg=MIMEText(speak,'html','utf-8')
msg['From']=formataddr(["小茹的昵称还是小茹",my_sender]) # 括号里的对应发件人邮箱昵称、发件人邮箱账号
msg['To']=formataddr(["这是收件人的昵称",my_user]) # 括号里的对应收件人邮箱昵称、收件人邮箱账号
msg['Subject']="这是Title" # 邮件的主题,也可以说是标题
server=smtplib.SMTP_SSL("smtp.qq.com", 465) # QQ邮箱的邮箱中的SMTP服务器和端口
server.login(my_sender, my_pass) # 括号中对应的是发件人邮箱账号、邮箱密码
server.sendmail(my_sender,[my_user,],msg.as_string()) # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
server.quit() # 关闭连接
except Exception: # 如果 try 中的语句没有执行,则会执行下面的 ret=False
res=False
return res
res=send_TextMail()
if res:
print("纯文本邮件发送成功")
else:
print("纯邮件发送失败")
res=send_HTMLMail()
if res:
print("HTML邮件发送成功")
else:
print("HTML邮件发送失败")
标签:账号,python,res,发送,发件人,msg,邮箱,my,邮件 来源: https://blog.csdn.net/gaitiangai/article/details/115517847