1. 配置相关参数

如果用的是 阿里云的企业邮箱,则类似于下面:

在 settings.py 的最后面加上这些

EMAIL_BACKEND='django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = False
EMAIL_HOST='smtp.163.com'
EMAIL_PORT='25'
EMAIL_HOST_USER='2222@163.com'
EMAIL_HOST_PASSWORD='**' 这里密码不是邮箱密码,是STMP申请密码,在邮箱里面可以设置,开通就可以设置密码
DEFAULT_FROM_EMAIL='2222@163.com'


2. 发送邮件:

2.1 官网的一个例子:(试过,不行)
1
2
3
4
from django.core.mail import send_mail
 
send_mail('Subject here''Here is the message.''from@example.com',
    ['to@example.com'], fail_silently=False)
2.2 一次性发送多个邮件:(试过,不行)
1
2
3
4
5
6
7
8
from django.core.mail import send_mass_mail
 
 
message1 = ('Subject here''Here is the message''from@example.com', ['first@example.com''other@example.com'])
message2 = ('Another Subject''Here is another message''from@example.com', ['second@test.com'])
 
 
send_mass_mail((message1, message2), fail_silently=False)
备注:send_mail 每次发邮件都会建立一个连接,发多封邮件时建立多个连接。而 send_mass_mail 是建立单个连接发送多封邮件,所以一次性发送多封邮件时 send_mass_mail 要优于 send_mail。 2.3 如果我们想在邮件中添加附件,发送 html 格式的内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from django.conf import settings
from django.core.mail import EmailMultiAlternatives
 
 
from_email = settings.DEFAULT_FROM_EMAIL
# subject 主题 content 内容 to_addr 是一个列表,发送给哪些人
msg = EmailMultiAlternatives(subject, content, from_email, [to_addr])
 
msg.content_subtype = "html"
 
# 添加附件(可选)
msg.attach_file('./twz.pdf')
 
# 发送
msg.send()
上面的做法可能有一些风险,除非你确信你的接收者都可以阅读 html 格式的 邮件。 为安全起见,你可以弄两个版本,一个纯文本(text/plain)的为默认的,另外再提供一个 html 版本的(好像好多国外发的邮件都是纯文本的)只有这个可以
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from __future__ import unicode_literals
 
from django.conf import settings
from django.core.mail import EmailMultiAlternatives
 
subject = '来自自强学堂的问候'
 
text_content = '这是一封重要的邮件.'
 
html_content = '<p>这是一封<strong>重要的</strong>邮件.</p>'
 
msg = EmailMultiAlternatives(subject, text_content, from_email, [to@youemail.com])
 
msg.attach_alternative(html_content, "text/html")
 
msg.send()
上面代码打在app的views文件中,然后在project的urls中打下面的:
url(r'^$',emailapp_views.sent)
运行manage.py runserver 2000  浏览器打开才可以发送,如果直接运行views会一直提示电脑没有连接成功
												

Django发送邮件的更多相关文章

  1. Django 发送邮件

    问题: 对于一些错误信息或用户注册账号的时候,需要给用户发送邮件进行验证. 以用户注册发邮件为例子,用户向后端提起注册,后端收到用户邮箱,对邮箱格式进行验证,然后发送邮件,邮件内容中包括邮件标题.邮件 ...

  2. Django——发送邮件

    Django--发送邮件 在web应用中,服务器对客户发送邮件来通知用户一些信息,可以使用邮件来实现. Django中提供了邮件接口,使我们可以快捷的建设一个邮件发送系统. 以下是一个简单实例: se ...

  3. $Django 发送邮件--django封装模块和python内置SMTP模块

    一 使用SMTP模块发送邮件 import smtplib from email.mime.text import MIMEText from email.header import Header m ...

  4. Django发送邮件和itsdangerous模块的配合使用

    项目需求:用户注册页面注册之后,系统会发送一封邮件到用户邮箱,用户点击链接以激活账户,其中链接中的用户信息需要加密处理一下 其中激活自己邮箱的smtp服务的操作就不在加以说明,菜鸟教程上有非常清晰的讲 ...

  5. django发送邮件的坑

    django发送邮件的坑 配置django发邮件的时候本地发送时好好的,但是放到阿里云的服务器上却不能发送. 经过一系列的排查后终于发现是阿里云把25端口给封了. 后来改用smtps的方式发送,更改d ...

  6. django发送邮件send_mail&send_mass_mail

    一.配置 在setting.py中进行相关配置: EMAIL_HOST = 'smtp.sina.cn' #SMTP地址 EMAIL_PORT = 25 #SMTP端口 EMAIL_HOST_USER ...

  7. django 发送邮件功能

    setting.py # 邮件配置 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'smtp.e ...

  8. Django发送邮件方法

    在Django中将渲染后的模板进行邮件发送,可以使用send_email方法 首先在settings.py中添加如下配置 # 邮件配置SSL加密方式 EMAIL_HOST = 'smtp.qq.com ...

  9. 富文本编辑器、全文检索和django发送邮件

    1.富文本编辑器 1.1快速了解 借助富文本编辑器,网站的编辑人员能够像使用offfice一样编写出漂亮的.所见即所得的页面.此处以tinymce为例,其它富文本编辑器的使用也是类似的. 在虚拟环境中 ...

随机推荐

  1. 【mongo】mongoVUE使用

    1.查询存在字段"test"的项 {"test":{$exists:true}} 2.在表中插入字段 {$set:{"}} 3.正则匹配 {" ...

  2. C# Lamda中类似于SQL 中的 In 功能

    首先,在程序中接受一个数组 例如:int[] s=[1,2,3]; 在Lamda表达式中使用如下: db.userinfo.where(u=>s.Contains(u.id)); 等同于sql语 ...

  3. json_decode返回NULL

    最近在调用某公司的API时,将对方返回的数据,使用PHP的json_decode函数解析,但是返回NULL,最终排查为对方传送来的json格式有误 打印$_REQUEST,数据结构大致如下: arra ...

  4. taskkill批量删除进程命令

    本人自用: TASKKILL /F /IM notepad --强制删除进程名中带notepad的所有进程 TASKKILL [/S system [/U username [/P [password ...

  5. Codeigniter基础

    一.去除index.php 新建.htaccess: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUES ...

  6. EF 配置(SqlServer,Mysql)

    DbProvider Mysql <system.data><DbProviderFactories><remove invariant="MySql.Data ...

  7. java的布尔运算符和位运算符

    1.布尔运算符 &&  逻辑与: ||   逻辑或: !=  不等于: 三元操作符:?: :表达式为  condition?expression1:expression2(当条件为真时 ...

  8. nodejs+mysql 断线重连

    var mysql = require('mysql'); var conn; function handleError () { conn = mysql.createConnection({ ho ...

  9. Android 6.0 - 动态权限管理的解决方案

    Android 6.0版本(Api 23)推出了很多新的特性, 大幅提升了用户体验, 同时也为程序员带来新的负担. 动态权限管理就是这样, 一方面让用户更加容易的控制自己的隐私, 一方面需要重新适配应 ...

  10. linux中redis的php扩展安装

    PHP中的扩展一般都是在安装环境的时候就已经装好了的.但是有的一些扩展在后期想要加上去的话也是可以的.php支持后期安装扩展. 想要安装扩展就需要先去下载安装扩展所需要的扩展源码包.autoconf. ...