Python教程

python-发送邮件

本文主要是介绍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-发送邮件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!