python(Django)发送自定义邮件----自定义邮件样式(模板),拿来直接用

前言

简单介绍一下:`

  • 本文是利用Python的web框架----django发送自定义邮件、当然稍微修改一下也可以直接用在原生python中(不知道咋形容了,就是直接自我定义成‘原生python语法’吧,哈哈哈),,,,
  • 将邮件的样式设计成自己喜欢的样子,使得更加美观,易于查看
  • 在这里要注意:QQ邮箱、网易邮箱等电子邮箱平台不支持内联js代码,所以自定义邮箱样式时,只能使用HTML和css组合
  • 直接让你 ctrl+c —> ctrl+v 拿来用!!

如果你说“我能把js嵌入并功能正常使用!”那,,,额,,,嗯。。。

一、Django部分!

1.setting.py文件

首先配置你要用什么账号(邮箱服务平台发送邮件:QQ、网易,,,,等等)

注意:!!!!!!: 此处无论你使用哪一方平台的账号发送邮件,其接收方不受影响(简单说就是:你用QQ邮箱发送邮件,其收件人的地址是谷歌的还是网易的 等等都可以接收,不局限于固定邮箱平台!)

setting.py文件的最后加入这段代码:

#邮件相关配置
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'# 发送邮件配置
EMAIL_HOST = 'smtp.qq.com'# 服务器名称(此处是QQ的,网易163邮箱是:smtp.163.com)

EMAIL_PORT = 587# 服务端口
EMAIL_HOST_USER = '123456789@qq.com' # 填写自己邮箱账号,你将通过这个账号发送邮件给别人!
EMAIL_HOST_PASSWORD = 'abcdefghigklmn'# 在邮箱中设置的客户端授权密码(不知道在那的,登录自己邮箱,去设置里面找,实在不知道怎么获得,那就csdn或百度搜一下,都有且很详细)
EMAIL_FROM = 'L_Augety'# 收件人看到的发件人
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
EMAIL_USE_TLS = True   #是否使用TLS安全传输协议
#EMAIL_USE_SSL = True    #是否使用SSL加密,qq企业邮箱要求使用

2.views.py文件

views.py文件加入这段代码:

#首先先定义一个sendMessage的函数,方便后期调用
def sendMessage(email,userid):#发送邮件并返回验证码
    # 生成验证码
    import random
    str1 = '0123456789'
    rand_str = ''
    for i in range(0, 6):
        rand_str += str1[random.randrange(0, len(str1))]
    # # 发送邮件:
    try:
	    from django.template.loader import get_template
	    #自定义邮件内容模板将在下面 Email.html 文件中写!
	    template = get_template('Email.html')
	    
	    #将 userid和rand_str两个参数传入 SendEmailCode1.html 文件中
	    #如果又有多个参数,可累加 即:{'userid': userid, 'rand_str': rand_str, 'key1':value1, 'key2':value2,.........}
	    html_content = template.render({'userid': userid, 'rand_str': rand_str})
	
	    from_send = EMAIL_HOST_USER
	    #sbj:就是人家收到你的邮件时,显示的标题,,
	    sbj = 'XXXXXXX什么什么系统/平台 注册验证码'
	    send_mail(subject=sbj, message=None,html_message=html_content, from_email=from_send, recipient_list=[email])
	    return yes
	except:
		return error
		
def SendEmilState(request):
	#接收前端传过来的两个参数,即:userid、email 
	userid = request.POST.get('userid')
	email= request.POST.get('email')
	#判断是否发送成功
	if sendMessage(userid,email)==yes:
		'''
			发送成功后,将要执行的其他代码
			可写在此处~~~~~~~~~~~~~~~~
		'''
		print('发送成功')
		result = {"code": 0, "msg": "邮件提醒发送成功"}
        return JsonResponse(result, safe=False, json_dumps_params={"ensure_ascii": False})
    else:
    	print('发送失败')
    	result = {"code": 1, "msg": "邮件提醒发送失败!"}
    	return JsonResponse(result, safe=False, json_dumps_params={"ensure_ascii": False})

二、自定义邮件样式

注意: 将css利用<style> </style>标签放在HTML文件里,最好不要用路径去引用,否则有可能会出错!!

1.自定义邮箱样式

首先创建一个Email.html文件,用于写邮件模板。


<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>L_Augety电子邮件模板</title>
</head>
<body>
<style>
.panel {
			width: 600px;
			height: 300px;
			margin: 0 auto;
			background: ;
			box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.3);
			border-radius: 5%;
		}
</style>
<div class="panel">
	<div style="text-align: center;padding-top: 5%;">
		<div style="font-weight: bold;"> XXXXXXX什么什么系统/平台 注册验证码</div>
	</div>
	<div style="text-indent: 2em;padding-top: 5%;">用户:&nbsp;<span style="color: #0066FF;">{{userid}}</span> &nbsp;您好:
		<div style="padding-top: 5%;">欢迎注册‘XXXXXXX什么什么系统/平台’</div>
		<div style="padding-top: 2%;">您的注册验证码:</div>
		<div style="text-align: center;padding-bottom: 2%;">
			<div style="font-size: 40px;font-weight: bold; color: #0000CC;">{{rand_str}}</div>
		</div>
		<div>验证码请妥善保管,请勿泄露,<span style="color: red;">有效期为5分钟</span></div>
	</div>
</div>
</body>
<script >
</script>
</html>


三、展示

像这种的注册页面我就不提供啦,自己写吧,,
在这里插入图片描述


在这里插入图片描述

四、拓展

此时你已经成功完成‘自定义邮件样式’了,然后去编写你属于你自己的样式吧~~~~~

比如写成这样:
在这里插入图片描述
在这里插入图片描述

最后

注意:尽量将 css代码 于 html代码 放在一起!!!!其次,大部分邮箱平台对内联js语法都不支持!!,所以你99%的情况运行不了js代码!

有什么问题,评论或私信我哦~~~~
点赞,代码无bug!!!!!!!!!!!!!·

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Django-rest-framework中,可以使用Django自带的邮件发送功能或第三方库进行邮件发送。如果要自定义邮件内容,可以使用Django自带的邮件模板。 1. 创建邮件模板Django项目的templates目录下创建一个名为`email`的文件夹,然后在该文件夹下创建一个名为`email_template.html`的文件,作为邮件模板模板中可以使用Django模板语言进行变量替换,例如: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>邮件标题</title> </head> <body> <p>尊敬的{{ username }}:</p> <p>您的账号已经成功注册!</p> </body> </html> ``` 2. 发送邮件发送邮件的代码中,使用Django的render_to_string函数将邮件模板渲染为HTML内容,然后将HTML内容作为邮件的正文发送出去,例如: ```python from django.core.mail import send_mail from django.template.loader import render_to_string def send_registration_email(user_email, username): subject = '账号注册成功' # 邮件主题 message = '' # 纯文本邮件内容 from_email = 'noreply@example.com' # 发件人邮箱 recipient_list = [user_email] # 收件人邮箱列表 html_message = render_to_string('email/email_template.html', {'username': username}) # 邮件HTML内容 send_mail(subject, message, from_email, recipient_list, html_message=html_message) ``` 以上代码中,使用render_to_string函数将邮件模板渲染为HTML内容,并将HTML内容作为html_message参数传递给send_mail函数,从而发送包含自定义内容的邮件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

L_Augety

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值