Django带有易于使用的轻型引擎来发送电子邮件。与Python类似,您只需要导入smtplib。在Django中,您只需要导入django.core.mail。要开始发送电子邮件,请编辑您的项目settings.py文件并设置以下选项-

  • EMAIL_HOST -smtp服务器。
  • EMAIL_HOST_USER -smtp服务器的登录凭据。
  • EMAIL_HOST_PASSWORD -smtp服务器的密码凭证。
  • EMAIL_PORT -smtp服务器端口。
  • EMAIL_USE_TLS或_SSL-如果安全连接,则为 True。

发送简单的电子邮件

让我们创建一个“ sendSimpleEmail”视图以发送简单的电子邮件。

from django.core.mail import send_mailfrom django.http import HttpResponsedef sendSimpleEmail(request,emailto):   res = send_mail("hello paul", "comment tu vas?", "paul@polo.com", [emailto])   return HttpResponse('%s'%res)

这是send_mail参数的详细信息-

  • 主题 -电子邮件主题。
  • 消息 -电子邮件正文。
  • from_email-电子邮件来源。
  • receiver_list- 收件人的电子邮件地址列表。
  • fail_silently-布尔,如果错误,则send_mail会在发生错误的情况下引发异常。
  • auth_user-用户登录(如果未在settings.py中设置)。
  • auth_password-用户密码(如果未在settings.py中设置)。
  • 连接 -电子邮件后端。
  • html_message-(在Django 1.7中是新增功能)(如果存在),则电子邮件将是多部分/替代的。

我们创建一个URL以访问我们的视图-

from django.conf.urls import patterns, urlurlpatterns = paterns('myapp.views', url(r'^simpleemail/(?P   [w.%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,4})/',    'sendSimpleEmail' , name = 'sendSimpleEmail'),)

因此,当访问/myapp/simpleemail/polo@gmail.com时,您将获得以下页面-

使用send_mass_mail发送多个邮件

该方法返回成功传递的消息数。与send_mail相同,但带有一个额外的参数;datatuple,我们的sendMassEmail视图将是-

from django.core.mail import send_mass_mailfrom django.http import HttpResponsedef sendMassEmail(request,emailto):   msg1 = ('subject 1', 'message 1', 'polo@polo.com', [emailto1])   msg2 = ('subject 2', 'message 2', 'polo@polo.com', [emailto2])   res = send_mass_mail((msg1, msg2), fail_silently = False)   return HttpResponse('%s'%res)

我们创建一个URL以访问我们的视图-

from django.conf.urls import patterns, urlurlpatterns = paterns('myapp.views', url(r'^massEmail/(?P   [w.%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,4})/(?P   [w.%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,4})', 'sendMassEmail' , name = 'sendMassEmail'),)

当访问/myapp/massemail/polo@gmail.com/sorex@gmail.com/时,我们得到-

send_mass_mail参数的详细信息是-

  • datatuples-每个元素都相似的元组(主题,消息,from_email,receiver_list)。
  • fail_silently-布尔,如果错误,则send_mail会在发生错误的情况下引发异常。
  • auth_user-用户登录(如果未在settings.py中设置)。
  • auth_password-用户密码(如果未在settings.py中设置)。
  • 连接 -电子邮件后端。

如上图所示,成功发送了两条消息。

注意 -在此示例中,我们使用Python smtp debuggingserver,您可以使用以下命令启动-

$python -m smtpd -n -c DebuggingServer localhost:1025

这意味着您发送的所有电子邮件都将打印在stdout上,并且虚拟服务器正在localhost:1025上运行。

使用mail_admins和mail_managers方法向管理员和经理发送电子邮件

这些方法将电子邮件发送到settings.py文件的ADMINS选项中定义的站点管理员,并将电子邮件发送到settings.py文件的MANAGERS选项中定义的站点管理员。假设我们的ADMINS和MANAGERS选项看起来像-

ADMINS =(('polo','polo@polo.com'),)

经理 =(('popoli','popoli@polo.com'),)

from django.core.mail import mail_adminsfrom django.http import HttpResponsedef sendAdminsEmail(request):   res = mail_admins('my subject', 'site is going down.')   return HttpResponse('%s'%res)

上面的代码将向ADMINS部分中定义的每个管理员发送电子邮件。

from django.core.mail import mail_managersfrom django.http import HttpResponsedef sendManagersEmail(request):   res = mail_managers('my subject 2', 'Change date on the site.')   return HttpResponse('%s'%res)

上面的代码将向MANAGERS部分中定义的每个经理发送电子邮件。

参数详细信息-

  • 主题 -电子邮件主题。
  • 消息 -电子邮件正文。
  • fail_silently-布尔,如果错误,则send_mail会在发生错误的情况下引发异常。
  • 连接 -电子邮件后端。
  • html_message-(在Django 1.7中是新增功能)(如果存在),则电子邮件将是多部分/替代的。

发送HTML电子邮件

在Django> = 1.7中发送HTML消息就像-

from django.core.mail import send_mailfrom django.http import HttpResponse   res = send_mail("hello paul", "comment tu vas?", "paul@polo.com",          ["polo@gmail.com"], html_message=")

这将生成多部分/替代电子邮件。

但是对于Django <1.7,发送HTML消息是通过django.core.mail.EmailMessage类完成的,然后在对象上调用“发送”-

让我们创建一个“ sendHTMLEmail”视图以发送HTML电子邮件。

from django.core.mail import EmailMessagefrom django.http import HttpResponsedef sendHTMLEmail(request , emailto):   html_content = "Comment tu vas?"   email = EmailMessage("my subject", html_content, "paul@polo.com", [emailto])   email.content_subtype = "html"   res = email.send()   return HttpResponse('%s'%res)

EmailMessage类创建的参数详细信息-

  • 主题 -电子邮件主题。
  • 消息 -HTML中的电子邮件正文。
  • from_email-电子邮件来源。
  • -收件人的电子邮件地址列表。
  • 密件抄送-“密件抄送”收件人的电子邮件地址列表。
  • 连接 -电子邮件后端。

我们创建一个URL以访问我们的视图-

from django.conf.urls import patterns, urlurlpatterns = paterns('myapp.views', url(r'^htmlemail/(?P   [w.%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,4})/',    'sendHTMLEmail' , name = 'sendHTMLEmail'),)

访问/myapp/htmlemail/polo@gmail.com时,我们得到-

发送带有附件的电子邮件

这是通过在EmailMessage对象上使用“ attach”方法来完成的。

发送带有附件的电子邮件的视图将是-

from django.core.mail import EmailMessagefrom django.http import HttpResponsedef sendEmailWithAttach(request, emailto):   html_content = "Comment tu vas?"   email = EmailMessage("my subject", html_content, "paul@polo.com", emailto])   email.content_subtype = "html"      fd = open('manage.py', 'r')   email.attach('manage.py', fd.read(), 'text/plain')      res = email.send()   return HttpResponse('%s'%res)

有关附加参数的详细信息-

  • filename-要附加的文件名。
  • content-要附加的文件的内容。
  • mimetype-附件的内容mime类型。

asp.net web开发框架_Python之Web开发框架学习 发送电子邮件相关推荐

  1. python 开发框架_python的web开发框架有哪些

    python在web开发方面有着广泛的应用.鉴于各种各样的框架,对于开发者来说如何选择将成为一个问题.为此,我特此对比较常见的几种框架从性能.使用感受以及应用情况进行一个粗略的分析. 1 Django ...

  2. python 简单web音频_Python Twisted web服务器音频fi

    我尝试用python中的twisted创建一个简单的web服务器.不过,我无法提供m4a音频文件.在 在当前程序中,当我加载http://localhost:8880/mp3.html时,它可以正常工 ...

  3. python实现web服务器_python实现web服务器

    本想写一篇关于http->nginx->php这个过程中数据是怎么传输的文章,想了半天,实在没有心情去写.刚好看了一下python,就想着用python实现一下web服务器的过程.这个很简 ...

  4. python编写web接口_Python写web接口

    前言 最近在看有关python的一些知识.是关于深度学习的东西,但是很不明白,因为自己的数学功底太差.之前总是想搞一些关于算法的东西,又不会,这就想起来了大二实训老师的话.这个老师挺好,和我聊了两堂课 ...

  5. python flask web开发_Python Flask web后端开发

    1 路由选择 from flask import Flask from flask import request from flask import make_response from flask ...

  6. python访问web网页_python访问web的利器:urllib2

    使用Python访问网页主要有三种方式: urllib, urllib2, httplib urllib比较简单,功能相对也比较弱,httplib简单强大,但好像不支持session 1. 最简单的页 ...

  7. python的web可视化_Python的Web可视化框架Dash(8)---核心组件

    本节介绍Dash应用的常用核心组件,导入本节用到的所有包 import pandas as pd import plotly.graph_objs as go import dash import d ...

  8. godaddy php mail,如何使用godaddy web主机上的phpmailer通过365发送电子邮件

    我要用phpmailer lib通过365发送电子邮件. 这是我的配置 MAIL_DRIVER=smtp MAIL_HOST=smtp.office365.com MAIL_PORT=587 MAIL ...

  9. 基于.Net 2.0 (C# 2.0, ASP.NET 2.0)的快速Web开发框架设计

    基于.Net 2.0 (C# 2.0, ASP.NET 2.0)的快速Web开发框架设计 整个Framework结构如下: Framework.Common - 常用组件(Design By Cont ...

最新文章

  1. object-c中的继承
  2. Spring Security教程 Vol 9. AccessDecisionManager组件介绍
  3. 即插即用 | S-FPN全新的金字塔网络,更适合轻量化模型的FPN
  4. 从JS对象开始,谈一谈“不可变数据”和函数式编程
  5. Smarty模板技术学习(二)
  6. 56 - I. 数组中数字出现的次数
  7. matlab条形图颜色矩阵,matlab中的条形图开关颜色
  8. office365安装文件_Microsoft 365(原Office 365)离线下载安装教程
  9. 问题 D: 寻求勾股数
  10. 雅虎被告存在重大疏忽 导致5亿账户信息被黑
  11. 三层交换机SVI实现不同VLAN通信.
  12. 中望cad文字显示问号怎么办_中望CAD图纸显示乱码怎么办?
  13. 主板检测卡c5_主板测试卡代码及解决方法
  14. better-scroll实现滚动效果
  15. 在Vue中将单独一张图片设为背景图并充满整个屏幕
  16. okhttp3发送请求
  17. 外贸网站如何全球加速?用全球加速CDN比较好
  18. Rails出现ROLLBACK TO SAVEPOINT active_record_1信息的解决
  19. 北邮20网安院面试问题汇总
  20. 双非计算机本科生如何混进互联网大厂?

热门文章

  1. 负载均衡、分布式、集群的关系
  2. map.addoverlay php,覆盖物 - 百度地图开发文档 - php中文网手册
  3. C++常见面试题,来看看你会几个~~
  4. 从实现原理来讲,Nacos 为什么这么强
  5. 再见,Kafka!RocketMQ已成气候!
  6. 利用,ArrayList,HashMap,洗牌,发牌,看牌。
  7. php自动维护,window_Win7系统中的一些自动维护计划、任务关闭、禁用方法图文教程,  windows自动维护功能会在计 - phpStudy...
  8. js 对Array的补充
  9. Effective C++(9) 构造函数调用virtual函数会发生什么
  10. hdu 3093 动态规划