django实现利用mailgun进行收发邮件

django窗口类运用和邮件收发

运用django窗口类来完成表单html


利用窗口类后,在网页调用函数view.contact()中,添加以下代码

def email(request):
    if request.method == 'POST':
        form = ContactForm(request.POST) #获取POST表单
        if form.is_valid():
            message= "感谢你的来信,我们会尽快回复你"
            user_name= form.cleaned_data['user_name']
            user_city = form.cleaned_data['user_city']
            user_school = form.cleaned_data['user_school']
            user_email= form.cleaned_data['user_email']
            user_message=form.cleaned_data['user_message']
            mail_body=u'''
            网友姓名:{}
            居住城市:{}
            是否在学:{}
            反映意见:{}
            '''.format(user_name,user_city,user_school,user_message)

            email = EmailMessage('来自【大笨熊】网站的网友来信',mail_body,user_email,['helloguobao@gmail.com'])
            email.send()
        else:
            message ="请检查你的信息是否正确"
    else:#第一次请求表单
        form =ContactForm()

    template = get_template('one/email.html')#要import如下的包
    request_context = RequestContext(request)
    request_context.push(locals())
    html = template.render(request_context)

    return HttpResponse(html)

需要的导的包

from django.shortcuts import render
from django.http import HttpResponse
from django.template import loader,RequestContext
from oneapp01.models import ContactForm#这个是你要写的的窗口类
from django.views.decorators.csrf import csrf_exempt, csrf_protect #{% csrf_token %}
from django.views.decorators.cache import cache_page
from django.core.mail import EmailMessage 
from django.template.loader import get_template

注册mailgun账号,每月免费很多发邮件次数

回到django的setting.py中,添加以下代码,替换自己的key和name

#发送邮件
EMAIL_BACKEND="django_mailgun.MailgunBackend"
MAILGUN_ACCESS_KEY='fb4e6849f5db78a0*************6a0-8889127d-316be5fc'
MAILGUN_SERVER_NAME= 'sandbox65a9500***************c69e0f99ae6e521.mailgun.org'

测试一下

原文地址:https://www.cnblogs.com/guguobao/p/9321919.html