Django1.11.9 发送邮件与邮件**
Django 发送邮件与邮件**
本文博主原创 第一次使用markdown编辑器好开心
闲话少叙
修改settings.py 进行设置
EMAIL_USE_SSL = True #这里要用SSL协议
EMAIL_USE_TLS = False
EMAIL_HOST = 'smtp.qq.com' # 如果是 163 改成 smtp.163.com
EMAIL_PORT = 465
EMAIL_HOST_USER = '[email protected]' # 帐号
EMAIL_HOST_PASSWORD = 'migpwqgex123123123' # 密码(必须是授权码)
DEFAULT_FROM_EMAIL = 'jojo的奇幻冒险' #默认发件人
新建sendemail.py文件
from audioop import reverse
from django.core.mail import send_mail, EmailMultiAlternatives
from django.shortcuts import render
from django.template import loader, Context
from axf import settings
from axf.settings import EMAIL_HOST_USER, EMAIL_HOST_PASSWORD
def sendemial3(data,email):
title = '账号**'
email_template_name = 'mailtempalte.html'
t = loader.get_template(email_template_name)
mail_list = [email, ]
subject, from_email, to = title, EMAIL_HOST_USER, mail_list
html_content = t.render(data)
msg = EmailMultiAlternatives(subject, html_content, from_email, to)
msg.attach_alternative(html_content, "text/html")
msg.send()
在template文件夹下新建mailtemplate.html文件(要发送的模板)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>送给来自星星的你</title>
</head>
<body>
<h1>尊贵的{{ name }}男士,你好:</h1>
欢迎光临红浪漫,点击下面链接**更多服(bao)务(jian)<br/>
    <a href="{{ url }}">**</a>
如果链接失效,请访问下方链接<br/>
    {{ url }}
</body>
</html>
配置urls.py文件 增加路由
#路由不用都加只加上 regist与activate就好
from django.conf.urls import url, include
from app import views
urlpatterns = [
url(r'^index/', views.index,name='index'),
url(r'^index1/', views.index1,name='index1'),
url(r'^home/', views.home,name='home'),
url(r'^cart/', views.cart,name='cart'),
url(r'^market/', views.market,name='market'),
url(r'^market_response/(?P<typeid>\d+)/(?P<childid>\d+)/(?P<sortid>\d+)/$', views.market_response,name='market_response'),
url(r'^mine/', views.mine,name='mine'),
url(r'^login/', views.login,name='login'),
url(r'^regist/', views.regist,name='regist'),
url(r'^checkname/', views.checkname,name='checkname'),
url(r'^activate/', views.activate,name='activate'),
url(r'^logout/', views.logout,name='logout'),
]
views.py文件中添加urls中对应的函数
@csrf_exempt
def regist(request):
if request.method == 'GET':
data = {
'tittle':'注册'
}
return render(request,'user/regist.html',data)
if request.method == 'POST':
usrname = request.POST.get('username')
print(usrname)
password = request.POST.get('password')
encry_password = make_password(password)
# 可以使用正则进行 前端验证
email = request.POST.get('emailas')
ip = request.META.get('REMOTE_ADDR')
icon = request.FILES.get('icon')
token = generate_token(ip, usrname)
print(token)
user = User(username=usrname, password=encry_password, email=email, icon=icon,u_token=token)
user.save()
url = 'http://127.0.0.1:8000/app/activate/?u_token=' + token
cache.set(token,user.id,300)
data = {
'email':email,
'name' : usrname,
'url' : url,
}
sendemial3(data,email) #调用此函数发送邮件
# user = User(username=usrname,password=password,email=email,icon=icon)
# user.save()
return redirect(reverse("app:login"))
def activate(request): #此函数主要用于**邮箱
token = request.GET.get('u_token')
if(cache.has_key(token)):
id = int(cache.get(token))
user = User.objects.get(pk=id)
if(user):
user.active = True
user.save()
return redirect(reverse("app:login"))
else:
return HttpResponse('用户不存在')
else:
return HttpResponse('**有效期已过')
return None
结束了 这样就能发送邮件了 不要忘记配置邮箱
配置邮箱的链接https://www.cnblogs.com/zyj-python/p/7522471.html