博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django1.10 发送邮件
阅读量:6916 次
发布时间:2019-06-27

本文共 2079 字,大约阅读时间需要 6 分钟。

hot3.png

我们常常会用到一些发送邮件的功能,比如有人提交了应聘的表单,可以向HR的邮箱发邮件,这样,HR不看网站就可以知道有人在网站上提交了应聘信息。

1. 配置相关参数

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

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

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'  EMAIL_USE_TLS = FalseEMAIL_HOST = 'smtp.tuweizhong.com'EMAIL_PORT = 25EMAIL_HOST_USER = 'mail@tuweizhong.com'EMAIL_HOST_PASSWORD = 'xxxx'DEFAULT_FROM_EMAIL = 'mail@tuweizhong.com'

DEFAULT_FROM_EMAIL 还可以写成这样:

DEFAULT_FROM_EMAIL = 'tuweizhong 
'

 

这样别人收到的邮件中就会有你设定的名称,如下图:

 

下面是一些常用的邮箱:

         

其它邮箱参数可能登陆邮箱看寻找帮助信息,也可以尝试在搜索引擎中搜索:"SMTP 邮箱名称",比如:"163 SMTP" 进行查找。

有同学反馈了,qq和163都容易失败,不是技术的问题。建议使用阿里或腾讯企业邮箱来尝试。

2. 发送邮件:

2.1 官网的一个例子:

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 一次性发送多个邮件:

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 格式的内容

from django.conf import settingsfrom 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 版本的(好像好多国外发的邮件都是纯文本的)

from __future__ import unicode_literals from django.conf import settingsfrom django.core.mail import EmailMultiAlternatives subject = '来自自强学堂的问候' text_content = '这是一封重要的邮件.' html_content = '

这是一封重要的邮件.

' msg = EmailMultiAlternatives(subject, text_content, from_email, [to@youemail.com]) msg.attach_alternative(html_content, "text/html") msg.send()

 

 

转载于:https://my.oschina.net/aslanjia/blog/836789

你可能感兴趣的文章
Java究极打基础之ArrayList篇
查看>>
Java窗口(JFrame)从零开始(4)——流布局+边界布局+网格布局
查看>>
手机office办公——微软推出安卓手机端Office Mobile应用
查看>>
MySQL忘记密码后重置密码(Mac )
查看>>
raid卡的常用命令
查看>>
JavaScript 类型转换
查看>>
谈谈基于机器学习的编程到底比传统编程强在哪里?
查看>>
终极指南:如何使用Visual Studio Code进行 Java 开发?
查看>>
GitHub发布2017年度开发者报告,用户达2400万
查看>>
Java EE供应商和伦敦Java用户组宣布新的MicroProfile
查看>>
Python中的集合类模块collections详解
查看>>
Chef在InSpec 2.0增强了云安全的自动化功能
查看>>
升级的Electric Cloud平台增添了大型机和微服务功能
查看>>
Java 虚拟机经典六问
查看>>
Dart 2为移动开发做出改进
查看>>
无服务器TOP3大关键问题及解决方案
查看>>
基于Gitflow分支模型自动化Java项目工作流
查看>>
全能App研发助手!滴滴开源DoraemonKit
查看>>
.NET开源简史
查看>>
NoSQL 数据库敏捷数据模型
查看>>