前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >高阶应用-邮件

高阶应用-邮件

作者头像
星哥玩云
发布2022-09-14 17:43:43
发布2022-09-14 17:43:43
36500
代码可运行
举报
文章被收录于专栏:开源部署开源部署
运行总次数:0
代码可运行

官网:https://docs.djangoproject.com/en/3.0/

一、邮箱配置

  • 163邮箱配置 第一步百度搜索网易163邮箱,登录自己的邮箱账号进去 第二步点击右上方的设置,选择“POP3/SMTP/IMAP”

第三步勾选POP3/SMTP,会弹出需要客户端授权密码登录,点击确定

第四步进去之后,选择开启

第五步点击之后需要短信验证,输入验证码之后,再输入自己要设置的授权密码,点击确定

  • QQ邮箱配置 第一步百度搜索qq邮箱,登录自己的邮箱账号进去 第二步点击右上方的设置,选择“账户”

第三步将账户拉到中下部的位置上,把这两项勾选上

第四步点击生成授权码

第五步输入弹出的验证框(每个人的可能不同)

二、配置settings

settings.py

代码语言:javascript
代码运行次数:0
运行
复制
EMAIL_HOST = os.environ.get(<span class="hljs-string">'MAIL_SERVER'</span>,<span class="hljs-string">'smtp.163.com'</span>)
EMAIL_HOST_USER = os.environ.get(<span class="hljs-string">'MAIL_USER'</span>,<span class="hljs-string">'15611833906@163.com'</span>)
EMAIL_HOST_PASSWORD = os.environ.get(<span class="hljs-string">'MAIL_PASSWORD'</span>,<span class="hljs-number">123456</span>)

三、单人邮件

代码语言:javascript
代码运行次数:0
运行
复制
<span class="hljs-keyword">from</span> django.core.mail <span class="hljs-keyword">import</span> send_mail

send_mail(
    <span class="hljs-string">'Subject here'</span>,
    <span class="hljs-string">'Here is the message.'</span>,
    <span class="hljs-string">'from@example.com'</span>,
    [<span class="hljs-string">'to@example.com'</span>],
    fail_silently=<span class="hljs-keyword">False</span>,
)

使用[EMAIL_HOST]和[EMAIL_PORT]设置中指定的SMTP主机和端口发送邮件 。在 [EMAIL_HOST_USER]和[EMAIL_HOST_PASSWORD]设置,如果设置,用来验证到SMTP服务器, [EMAIL_USE_TLS]并[EMAIL_USE_SSL]设置控制安全连接是否被使用

四、多人邮件

说明

用于处理大量电子邮件

导入

代码语言:javascript
代码运行次数:0
运行
复制
from django.core.mail import send_mass_mail

方法 send_mass_mail()

send_mass_mail(datatuple,fail_silently = False,auth_user = None*,auth_password = None,*connection = None)

说明

每个单独的元素都会datatuple产生单独的电子邮件。与中[send_mail()]的相同,收件人 recipient_list都将在电子邮件的“收件人:”字段中看到其他地址

示例

代码语言:javascript
代码运行次数:0
运行
复制
message1 = (<span class="hljs-string">'Subject here'</span>, <span class="hljs-string">'Here is the message'</span>, <span class="hljs-string">'from@example.com'</span>, [<span class="hljs-string">'first@example.com'</span>, <span class="hljs-string">'other@example.com'</span>])
message2 = (<span class="hljs-string">'Another Subject'</span>, <span class="hljs-string">'Here is another message'</span>, <span class="hljs-string">'from@example.com'</span>, [<span class="hljs-string">'second@test.com'</span>])
send_mass_mail((message1, message2), fail_silently=<span class="hljs-keyword">False</span>)

返回值将是成功传递的消息数

send_mass_mail()与send_mail()区别

[send_mass_mail()]和 之间的主要区别[send_mail()]是, [send_mail()]每次执行时都会打开与邮件服务器的连接,而[send_mass_mail()]对所有邮件使用单个连接。这使得 [send_mass_mail()]效率更高

五、发送替代内容类型

说明

在电子邮件中包含内容的多个版本可能很有用;经典示例是发送消息的文本版本和HTML版本。使用Django的电子邮件库,您可以使用EmailMultiAlternatives 类进行此操作。的此子类[EmailMessage]具有一种 attach_alternative()方法,用于在电子邮件中包括消息正文的其他版本。所有其他方法(包括类初始化)都直接继承自[EmailMessage]

示例

代码语言:javascript
代码运行次数:0
运行
复制
<span class="hljs-keyword">from</span> django.core.mail <span class="hljs-keyword">import</span> EmailMultiAlternatives

subject, from_email, to = <span class="hljs-string">'hello'</span>, <span class="hljs-string">'from@example.com'</span>, <span class="hljs-string">'to@example.com'</span>
text_content = <span class="hljs-string">'This is an important message.'</span>
html_content = <span class="hljs-string">'&lt;p&gt;This is an &lt;strong&gt;important&lt;/strong&gt; message.&lt;/p&gt;'</span>
msg = EmailMultiAlternatives(subject, text_content, from_email, [to])
msg.attach_alternative(html_content, <span class="hljs-string">"text/html"</span>)
msg.send()
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、邮箱配置
  • 二、配置settings
  • 三、单人邮件
  • 四、多人邮件
  • 五、发送替代内容类型
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档