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之邮件发送的更多相关文章

  1. Django的邮件发送以及云服务器上遇到的问题

    邮件发送 首先我们的邮箱要开通smtp服务,然后就可以在settings中配置了 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBacken ...

  2. django 配置邮件发送 send_email

    导入 send_email 所用方法导入 from django.core.mail import send_mail 因为使用的需要指明 发送人 所以要把 setting.py 中的 EMAIL_F ...

  3. Django实现邮件发送功能

    首先申请邮箱并在设置中申请到授权码,授权码的目的仅仅是让你有权限发邮件,但是不能登录到邮箱进行修改,发送邮件时,可以代替密码 1,配置文件settings.py #邮件服务配置文件 EMAIL_USE ...

  4. 用django实现邮件发送

    settings配置 EMAIL_HOST = 'smtp.qq.com' # 如果是163换成stmp.163.com EMAIL_PORT = 465 # qq邮箱的端口 EMAIL_HOST_U ...

  5. 毕业设计——Django邮件发送功能实现及问题记录

    django发送邮件:send_mail()&send_mass_mail() 自强学堂 刘江的博客 HTTPS,TLS和SSL django发送邮件及其相关问题 步骤 : 0. 登录作为发送 ...

  6. python 项目实战之Django 邮件发送

    发送邮件¶ 虽然 Python 借助 smtplib 模块简化了发送邮件的流程,但是 Django 在其基础上提供了更简化的支持.这些封装意在加快邮件发送,方便在开发时测试发送邮件,在不支持 SMTP ...

  7. django的邮件email功能

    注意 测试的时候python manage.py test -p "test_tasks.py" -v 3,默认使用的EMAIL_BACKEND配置为:'django.core.m ...

  8. django发邮件

    django发邮件 配置setting信息 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'sm ...

  9. .NET开发邮件发送功能的全面教程(含邮件组件源码)

    今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1)         邮件基础理论知识 2)         ...

随机推荐

  1. 【22】Vue 之 Vue Devtools

    vue安装: # 最新稳定版 $ npm install vue # 全局安装 vue-cli $ npm install --global vue-cli # 创建一个基于 webpack 模板的新 ...

  2. 遍历简单XML节点

    原文发布时间为:2009-08-26 -- 来源于本人的百度文章 [由搬家工具导入] <?xml version="1.0" encoding="gb2312&qu ...

  3. 线程间操作无效: 从不是创建控件“textBox4”的线程访问它

    原文发布时间为:2009-03-30 -- 来源于本人的百度文章 [由搬家工具导入] public long str1, str2, str3, str4, str5, sum=0,sum1=0; p ...

  4. php--获取用户ip

    一般在做登录的时候有的会要求同一个帐号不能同时用不同的ip登录,这个时候我们需要获取到用户IP地址 获取ip地址的函数: function getIP() { if (getenv('HTTP_CLI ...

  5. python中mp3转wav(Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work")

    1.下载pydub:pip install pydub 2.下载与操作系统一致的ffmpeg:http://ffmpeg.org/download.html 3.解压后将下载的ffmpeg下的bin目 ...

  6. Java Servlet Filter

    做web开发的人对于Filter应该不会陌生,一直在很简单的使用,但是一直没有系统的总结一下,随着年纪的慢慢长大,喜欢总结一些事情,下面说说我对Filter的理解,官方给出的Filter的定义是在请求 ...

  7. 翻译BonoboService官网的安装教程

    This page covers simple Bonobo Git Server installation. Be sure to check prerequisites page before i ...

  8. Unity -- 材质-Material和预设体-Prefabs

    材质(Materials)用来把网格(Mesh)或粒子渲染器(Particle Renderers)贴到游戏对象上.他们在定义对象怎么被显示发挥重要组成部分.材质包括用于呈现网状或颗粒着色器的参考,所 ...

  9. 计算机视觉和模式识别领域SCI期刊介绍

    原帖地址: http://blog.sciencenet.cn/blog-370458-750306.html 关于计算机视觉和模式识别领域的期刊并不是很多,下面我收集了一些该领域的代表性期刊,并介绍 ...

  10. 【转】如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等

    如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等   你是否曾经有过要计算一个非常大的数据(几百GB)的需求?或在里面搜索,或其它操作——一些无法并 ...