Django之邮件发送
2016-04-19 14:59
676 查看
settings.py
forms.py
views.py
html:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/11/b1f2e2f922a974fd3dbe5d67088d7ab7.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/11/35d147fdf95104546f29c0b15180f862.png)
#settings 添加如下配置进行邮件发送
#邮件服务器 EMAIL_HOST = "smtp.qq.com" #邮件发送的端口 EMAIL_PORT = 25 #邮件发送者 EMAIL_HOST_USER = "xxx@doman.com" #邮件发送者的密码 EMAIL_HOST_PASSWORD = "password" #tls 加密 EMAIL_USE_TLS = True
forms.py
#coding:utf-8 __author__ = 'similarface' from django import forms class EmailPostForm(forms.Form): name=forms.CharField(max_length=25,label='姓名 ') email=forms.EmailField() to=forms.EmailField() comments=forms.CharField(required=False,widget=forms.Textarea,label='备注')
views.py
#coding:utf-8 from django.shortcuts import render #404 from django.shortcuts import get_object_or_404 #分页模块 from django.core.paginator import PageNotAnInteger,EmptyPage,Paginator # Create your views here. from .models import Post from django.views.generic import ListView from .forms import EmailPostForm #邮件模块 from django.core.mail import send_mail #不加以下3行 发送邮件的时候有中文在里面会报错 import sys reload(sys) sys.setdefaultencoding('utf-8')
def post_share(request,post_id): ''' 文章分享 发送邮件 ''' post=get_object_or_404(Post,id=post_id,status='published') sent=False if request.method=='POST': form=EmailPostForm(request.POST) if form.is_valid(): cd=form.cleaned_data post_url=request.build_absolute_uri(post.get_absolute_url()) subject = '{} ({}) 推荐你阅读 "{}"'.format(cd['name'], cd['email'], post.title) message = '阅读: "{}" 地址: {}\n\n{}\ 备注: {}'.format(post.title, post_url, cd['name'], cd['comments']) #这儿的xxx@doman.com 要和settings.py的EMAIL_HOST_USER 对应 [cd['to'] 接受邮件的列表] send_mail(subject, message, 'xxx@doman.com',[cd['to']]) sent = True else: form=EmailPostForm() return render(request, 'myblog/post/share.html', {'post': post,'form': form,'sent': sent})
html:
{% extends "myblog/base.html" %} {% block title %}Share a post{% endblock %} {% block content %} {% if sent %} <h1>邮件发送成功</h1> <p> "{{ post.title }}" 已经成功发送到 {{ cd.to }}. </p> {% else %} <h1>分享文章 "{{ post.title }}" </h1> <form action="." method="post"> {{ form.as_p }} {% csrf_token %} <input type="submit" value="发送邮件"> </form> {% endif %} {% endblock %}
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/11/b1f2e2f922a974fd3dbe5d67088d7ab7.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/11/35d147fdf95104546f29c0b15180f862.png)
相关文章推荐
- Django ORM - 001 - 外键表查询主表信息
- ZOJ 2404 Going Home 【最小费用最大流】
- Enjoy $10 cash coupon AF10 for cheapest runescape 2007 gold buying on Rsorder 4.18-4.26
- [django]入门教程3:模板语法及使用
- 今日BBC-4/19
- Gollum 安装笔记
- Google 的开源技术protobuf 简介与例子
- 他是如何将产品以 7 亿 5 千万美金卖给 Google 的
- DBN训练学习-A fast Learning algorithm for deep belief nets
- google地图 MapFragment
- POJ 2007 Scrambled Polygon(极角排序)
- HDU 4722-Good Numbers-数位dp
- django类视图浅析
- 源码编译安装GO1.6
- [django]入门教程2:视图开发-定义视图函数及配置相应URL
- poj-2262-Goldbach's Conjecture
- golang Md5+salt
- 初见Go
- BitGo CEO谈扩容:谁能最终决…
- BitGo公司推出比特币交易工具“Inst…