Django15-发邮件
来源:互联网 发布:python爬虫书籍推荐 编辑:程序博客网 时间:2024/06/03 15:42
Django 发送邮件
我们常常会用到一些发送邮件的功能,比如有人提交了应聘的表单,可以向HR的邮箱发邮件,这样,HR不看网站就可以知道有人在网站上提交了应聘信息。
1. 配置相关参数
如果用的是 阿里云的企业邮箱,则类似于下面:
在 settings.py 的最后面加上这些
1
2
3
4
5
6
7
8
EMAIL_BACKEND
=
'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS
=
False
EMAIL_HOST
=
'smtp.tuweizhong.com'
EMAIL_PORT
=
25
EMAIL_HOST_USER
=
'mail@tuweizhong.com'
EMAIL_HOST_PASSWORD
=
'xxxx'
DEFAULT_FROM_EMAIL
=
'mail@tuweizhong.com'
DEFAULT_FROM_EMAIL 还可以写成这样:
1
DEFAULT_FROM_EMAIL
=
'tuweizhong <tuweizhong@163.com>'
这样别人收到的邮件中就会有你设定的名称,如下图:
下面是一些常用的邮箱:
163 邮箱 126 邮箱 QQ 邮箱
其它邮箱参数可能登陆邮箱看寻找帮助信息,也可以尝试在搜索引擎中搜索:"SMTP 邮箱名称",比如:"163 SMTP" 进行查找。
有同学反馈了,qq和163都容易失败,不是技术的问题。建议使用阿里或腾讯企业邮箱来尝试。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()
阅读全文
0 0
- Django15-发邮件
- 发邮件
- 发邮件
- 发邮件
- 发邮件
- 发邮件
- 发邮件
- 发邮件
- 发邮件
- 发邮件
- 发邮件
- 发邮件
- 发邮件
- 发邮件
- 发邮件
- 发邮件
- 发邮件
- 发邮件
- 【飘红】继承了公共类中已经有的方法,再在实体类中写就是重写了
- 删除IIS Express上的网站
- 算法设计与应用基础:第十五周(2)
- 红黑树
- Java swing创建标签
- Django15-发邮件
- 项目开发——实时信息提交
- JAVA并发
- Burst Balloons
- 图片压缩(面试值得说)
- POJ 3281 <最大流,简单的拆点>
- [bzoj2427][HAOI2010]软件安装 Tarjan+树形DP
- qwb与支教 二分加容斥
- apache 2.2 和2.4 配置虚拟域名的区别