码迷,mamicode.com
首页 > 其他好文 > 详细

46)django-发送邮件

时间:2018-05-13 12:06:08      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:tac   set   htm   second   amp   邮箱   message   nic   ack   

django已封装好了邮件发送功能,可以直接调用发送模块

1. 配置相关参数 如果用的是 阿里云的企业邮箱,则类似于下面: 在 settings.py 的最后面加上类似这些 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 或者 EMAIL_USE_SSL = True EMAIL_HOST = smtp.qq.com # 如果是 163 改成 smtp.163.com EMAIL_PORT = 465 EMAIL_HOST_USER = xxx@qq.com # 帐号 EMAIL_HOST_PASSWORD = p@ssw0rd # 密码 DEFAULT_FROM_EMAIL = EMAIL_HOST_USER EMAIL_USE_SSL 和 EMAIL_USE_TLS 是互斥的,即只能有一个为 True。 DEFAULT_FROM_EMAIL 还可以写成这样: 1 DEFAULT_FROM_EMAIL = tuweizhong <tuweizhong@163.com> 这样别人收到的邮件中就会有你设定的名称,如下图: django_sendemail.png 下面是一些常用的邮箱: 163 邮箱 126 邮箱 QQ 邮箱 其它邮箱参数可能登陆邮箱看寻找帮助信息,也可以尝试在搜索引擎中搜索:"SMTP 邮箱名称",比如:"163 SMTP" 进行查找。 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 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 版本的(好像好多国外发的邮件都是纯文本的) 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()

 

46)django-发送邮件

标签:tac   set   htm   second   amp   邮箱   message   nic   ack   

原文地址:https://www.cnblogs.com/lixiang1013/p/9031209.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!