在django1.2+python2.7环境中使用send_mail发送邮件

最近在加紧学习python2.7+django1.2,操作系统使用的是ubutntu11.

而且充分利用了SAE(Sina AppEngine)几乎免费的云服务,还可以更好的实践在生产环境的效果。

新浪SAE的python环境的详细情况,可以参看:SAE Python 开发者手册。

今天学到了发送邮件这一课。刚开始没有使用sae的邮件服务,直接使用django.core.mail.send_mail函数。

首先在settings.py文件中设置如下

# email function, email notification
EMAIL_ADMIN="jorden008@gmail.com"

EMAIL_USE_TLS=True #是否需要传输层安全
EMAIL_HOST="smtp.gmail.com" #发送邮件的主机地址
EMAIL_PORT=587#25#465 #端口
EMAIL_HOST_USER="jorden008@gmail.com" #验证账号
EMAIL_HOST_PASSWORD ="login_password"#验证密码
DEFAULT_FROM_EMAIL="jorden008@gmail.com"#默认的from地址

准备使用gmail作为邮件发送代理,设置了host等信息。

在代码中按照下面的格式写即可

from django.core.mail import send_mail 

mail_body=" %s posted a new comment on the entry %s." % (comment.name, comment.content_object) 

def send_mail('new comment posted', mail_body, settings.EMAIL_HOST_USER, [settings.EMAIL_ADMIN],
              fail_silently=False):

可是就是现实失败,几次尝试都没有成功,上网搜索了一些资料也未果。

然后打开django shell,尝试在shell中发送。

进入程序根目录,启动shell

python manage.py shell

进入shell之后,键入下面的代码

from django.core.mail import send_mail
send_mail('title','content','jorden008@163.com',['jorden008@163.com'])

还是报错,提示我应该使用application-specific passwords,还给出一个地址,我打开看完之后,恍然大悟,也想起来了,之前进行android开发也遇到过类似情况,是google的设置,使用代码或者是第三方工具利用gmail作为代理发邮件的话,不能使用gmail的登录密码,需要申请一个临时密码,然后使用临时密码发送,这个临时密码是在google的用户后台界面生成了,还可以随时手动收回这个密码,这样加强了对于登录密码的保护,其实有点像是oauth的token,或者是令牌,会失效的,可以收回。详细情况参看http://support.google.com/accounts/bin/answer.py?hl=en&answer=185833。

于是我通过上面的网址进入下面的页面

返回栏目页:http://www.bianceng.cnhttp://www.bianceng.cn/Servers/Mail/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索密码
, sae
, 邮件
, sae 部署java...
, 新浪sae
, shell
, django
, python tokenize
, com
, gmail
, python 2.7代码跳转
, python2.7
, python发送邮件
Core邮件发送
django send mail、python2.7 django版本、python 2.7 django、python2.7安装django、python send mail,以便于您获取更多的相关知识。

时间: 2024-10-25 03:52:44

在django1.2+python2.7环境中使用send_mail发送邮件的相关文章

Linux集群和自动化维3.7.2 线上环境中的Fabric应用实例

3.7.2 线上环境中的Fabric应用实例 笔者线上的核心业务机器统一都是AWS EC2主机,机器数量较多,每个数据中心都部署了Fabric跳板机(物理拓扑图可参考图3-3),系统为Amazon Linux,内核版本为3.14.34-27.48.amzn1.x86_64,Python版本为Python 2.6.9. 如果公司项目组核心开发人员离职,线上机器就都要更改密钥,由于密钥一般是以组的形式存在的,再加上机器数量繁多,因此单纯通过技术人员手工操作,基本上是一项不可能完成的任务,但若是通过F

简单介绍Python2.x版本中的cmp()方法的使用

  这篇文章主要介绍了简单介绍Python2.x版本中的cmp()方法的使用,然而该方法在Python3.x版本中已并不再内置...需要的朋友可以参考下 cmp()方法比较两个列表的元素. 语法 以下是cmp()方法的语法: ? 1 cmp(list1, list2) 参数 list1 -- 这是要进行比较的第一个列表 list2 -- 这是要进行比较的第二个列表 返回值 如果元素是相同类型的,执行比较,并返回结果.如果元素是不同的类型,检查,看看他们是否是数字 如果是数字必要时强制进行数字比较

PhotoShop如何将透明玻璃杯融合到环境中教程

教程教大家PhotoShop如何将透明玻璃杯融合到环境中去,本文你将学到玻璃杯质感以及透明度的处理,朋友们赶快来学习一下! 原图和效果图: 一.工具选择 首先用钢笔工具或套索工具勾出杯子的部分. 二.去色叠底 咱们先将原图的杯子去色(Ctrl+Shift+U),去色的作用主要是还原到黑白灰,回复玻璃质感原本是无色的状态. 然后复制一层去色的杯子并且在图层混合模式里选择:正片叠底,使用曲线色阶作微调整,提亮一点. 看到有点透光了,但是玻璃显得暗淡,没有光泽感,不自然.所以抠图还得继续. 三.处理透

Oracle 11.2 RAC环境中CRSD进程简介

在11.2中,CRSD进程不再是RAC中最关键的进程之一. 如果对10g RAC比较熟悉,应该清楚CRSD进程的重要性,Oracle在操作系统启动后,就是通过启动这个进程然后启动整个CLUSTER以及数据库的. 在11.2的RAC中,Oracle调整了ASM,使得OCR和VOT可以存储在ASM磁盘组中.ASM是CLUSTER所支持的一个组件,而CLUSTER启动所需的OCR和VOT却要放在ASM中,这其实要解决一个先有鸡还是先有蛋的问题.最终Oracle通过OHASD进程的方式解决了这个问题,而

ASP.NET Web API Selfhost宿主环境中管道、路由

前言 前面的几个篇幅对Web API中的路由和管道进行了简单的介绍并没有详细的去说明一些什么,然而ASP.NET Web API这个框架由于宿主环境的不同在不同的宿主环境中管道中的实现机制和路由的处理方式有着很大的不同,所以我会将对应不同的宿主环境来分别的做出简单的讲解.  ASP.NET Web API路由.管道     ASP.NET Web API 开篇介绍示例     ASP.NET Web API 路由对象介绍     ASP.NET Web API 管道模型     ASP.NET

在产品环境中使用32位Exchange 2007

Exchange Server 2007 用在产品环境中应该配置64位的硬件.一般说来,32位的Exchange 2007只能用于测试,评估或是训练.但这并不全对.在支持的方式中配置32位的版本(或简称E2K7/32)用来作为一个可用的服务器是可能的--只是在Exchange 2007上的功能会受到限制. 这里有一些简洁的纲要,这些纲要中列出了在32位版本的Exchange 2007中哪些可能实现,哪些不可能实现. 1.可用来管理其它64位的Exchange2007系统.安装了32位系统的win

XML在Domino环境中的应用研究

dom|xml 摘 要:提出利用XML在Domino环境下实现供应链内各成员企业物流信息交换,并给出一个应用实例. 关键词:物流信息:XML:Domino:供应链 1 引 言 物流计划和执行的过程是一个企业内部各部门之间,乃至与供应链上下游合作伙伴之间的流程协作过程,因而,物流信息通常需要实现跨部门.跨企业流动,以便使业务伙伴之间可以像企业内部部门之间那样实现补货.运输.采购.订单处理等流程协同化工作,实现面向物流流程的协作.这必须要以物流信息协作为基础.然而,由于供应链中各成员企业相互独立,其

PHP 的解压缩ZipArchive中的extractTo()方法 LINUX+nginx环境中解压zip时文件丢失的问题

    在项目中要用ZipArchive解压ZIP文件,起初测试环境在WINDOWS平台中,测试通过,换到 LINUX+nginx 的环境中时 就出问题了(ZIP包中有文件和文件夹一共3百多个文件,大部分是带汉字的文件名),问题的现象是:不带汉字的文件解压没有问题,另外有部分带汉字和数字字母的文件解压没有问题,然后其他纯文字的文件名就丢失了,也没有报错,最后把问题定位到了extractTo()方法,这个方法尼玛是个封装的方法,看不到实际的源代码.       但是,发现 for($i = 0;

在VC++开发环境中整合Pro*C/C++

c++ 本文所讨论的内容基于以下环境:Microsoft Visual C++ 6.0ORACLE 8i (8.1.7) 当前版本:1.0 (041221) 声明:本文所述的某些操作可能对系统产生重大影响,请慎重操作!本人不对此产生的任何后果负责! 在VC++开发环境中整合Pro*C/C++Pro*C/C++为C/C++语言访问ORACLE数据库提供了极大的方便,但是,在编译的时候往往需要在命名行模式下编译pc文件,而目前多数开发都是在VC++这种整合开发环境中完成的,要在两者之间不停的切换,不