Django之邮件发送
settings.py
#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 %}

Django之邮件发送的更多相关文章
- Django的邮件发送以及云服务器上遇到的问题
邮件发送 首先我们的邮箱要开通smtp服务,然后就可以在settings中配置了 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBacken ...
- django 配置邮件发送 send_email
导入 send_email 所用方法导入 from django.core.mail import send_mail 因为使用的需要指明 发送人 所以要把 setting.py 中的 EMAIL_F ...
- Django实现邮件发送功能
首先申请邮箱并在设置中申请到授权码,授权码的目的仅仅是让你有权限发邮件,但是不能登录到邮箱进行修改,发送邮件时,可以代替密码 1,配置文件settings.py #邮件服务配置文件 EMAIL_USE ...
- 用django实现邮件发送
settings配置 EMAIL_HOST = 'smtp.qq.com' # 如果是163换成stmp.163.com EMAIL_PORT = 465 # qq邮箱的端口 EMAIL_HOST_U ...
- 毕业设计——Django邮件发送功能实现及问题记录
django发送邮件:send_mail()&send_mass_mail() 自强学堂 刘江的博客 HTTPS,TLS和SSL django发送邮件及其相关问题 步骤 : 0. 登录作为发送 ...
- python 项目实战之Django 邮件发送
发送邮件¶ 虽然 Python 借助 smtplib 模块简化了发送邮件的流程,但是 Django 在其基础上提供了更简化的支持.这些封装意在加快邮件发送,方便在开发时测试发送邮件,在不支持 SMTP ...
- django的邮件email功能
注意 测试的时候python manage.py test -p "test_tasks.py" -v 3,默认使用的EMAIL_BACKEND配置为:'django.core.m ...
- django发邮件
django发邮件 配置setting信息 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'sm ...
- .NET开发邮件发送功能的全面教程(含邮件组件源码)
今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1) 邮件基础理论知识 2) ...
随机推荐
- 程序员编写API遵循法则
Api理解: 1.遵循函数.数据库字段命名规则 2.思考项目的远景(扩展性) 3.思考团队调用是否方便及舒服 4.思考是否有灵动性
- VIJOS【1234】口袋的天空
背景 小杉坐在教室里,透过口袋一样的窗户看口袋一样的天空. 有很多云飘在那里,看起来很漂亮,小杉想摘下那样美的几朵云,做成棉花糖. 描述 给你云朵的个数N,再给你M个关系,表示哪些云朵可以连在一起. ...
- sql按照汉字首字母顺序排序(桃)
SELECT * FROM 表名 order by CONVERT(字段名 USING gbk)
- 【Visual Studio】解决错误 fatal error C1010: unexpected end of file while looking for precompiled head(转)
原文转自 http://blog.csdn.net/liuqiyao_01/article/details/38867145 在编译VS时候,出现fatal error C1010: unexpect ...
- Sql Server 2005 mdf、ldf文件无法复制问题
[问题原因]Sql Server服务只要启动就一直占用,故无法进行编辑操作. [解决办法 - 1]: 1)在开始-运行对话框中输入"services.msc”,显示如下界面: 2)关闭如上选 ...
- AC日记——[Sdoi2016]数字配对 bzoj 4514
4514 思路: 很受伤现在,,测了那么多次不过的原因就是因为INF不够大: 解法有两种: 解法1: 把n个点按照质因数个数为奇或偶分为两个点集(很容易就可以想到): 然后,按照题目连边跑最大费用流: ...
- Codeforces Gym101522 D.Distribution of Days-算日期 (La Salle-Pui Ching Programming Challenge 培正喇沙編程挑戰賽 2017)
D.Distribution of Days The Gregorian calendar is internationally the most widely used civil calendar ...
- Git Base 操作(一)
Git常用命令 1. 命令git init把这个目录变成Git可以管理的仓库: 2. 命令git commit把文件提交到仓库 这里需要注意的是,Git只能跟踪文本文件的改动,如txt文件,网页,所有 ...
- Java面试常问的问题(转载)
并发.JVM.分布式.TCP/IP协议 1)Java的数据结构相关的类实现原理,比如LinkedList,ArrayList,HashMap,TreeMap这一类的.以下简单模拟一个数据结构的连环炮. ...
- Codeforces 734C [水][暴力][贪心]
题意: 要生产n个物品,每个花费时间为x. 有两种魔法,每种最多使用1个. 其中第一种魔法可以使每个物品生产的花费时间变为ai,相应的花费是bi;第二种魔法可以减少ci个物品,相应的花费是di,并且保 ...