邮件发送
在settings配置文件,添加如下内容
EMAIL_USE_SSL = True
EMAIL_HOST = 'smtp.qq.com' # 如果是 163 改成 smtp.163.com
EMAIL_PORT = 465
EMAIL_HOST_USER = environ.get("EMAIL_SENDER") # 帐号
EMAIL_HOST_PASSWORD = environ.get("EMAIL_PWD") # 授权码(****)
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
在views调用
from django.conf import settings
from django.core.mail import send_mail
def send_my_email(req):
title = "邮件标题"
msg = "邮件内容"
#发信人邮箱
email_from = settings.DEFAULT_FROM_EMAIL
#收信人邮箱
reciever = ['[email protected]']
#发送邮件
send_mail(title,msg,email_form,reciever)
return HttpResponse("邮件发送成功")
拓展使用,在邮箱中发送页面(插入html样式)
在views.py代码
def send_email(req):
title = '邮件标题'
msg = ""
email_from = settings.DEFAULT_FROM_EMAIL
reciever = [
'[email protected]'
]
#加载模板
template = loader.get_template('email.html')
#渲染模板
html_str = template.render({'msg':'页面中显示的内容'})
#发送邮件
send_mail(title,msg,email_form,reciever,html_message=html_str)
return HttpResponse('发送成功')
在templates/email.html代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>发送的页面</h1>
<h3>{{msg}}<3>
</body>
</html>
一次发送多封邮件
使用send_mass_mail函数,views代码
from django.conf import settings
from django.core.mail import send_mass_mail
def send_many_email(req):
title = "邮箱标题"
content1 = "内容1"
email_from = settings.DEFAULT_FROM_EMAIL
reciever1 = [
'[email protected]',
'[email protected]'
]
content2 = "内容2"
#邮件1
msg1 = (title,content1,email_form,reciever1)
#邮件2
msg2 = ("标题",content2,email_from,['[email protected]','[email protected]'])
send_mass_mail((msg1,msg2),fail_silently=True)
return HttpResponse("发送成功")