第三百二十一节,Django框架,发送邮件

本文介绍如何使用Django框架配置并发送电子邮件,包括简单的文本邮件、带有HTML格式的邮件及带有附件的邮件,并对比了send_mail与send_mass_mail两种方法的效率。

第三百二十一节,Django框架,发送邮件

 

全局配置settings.py

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'   #发送邮件引擎

EMAIL_USE_TLS = False                               #是否以https方式
EMAIL_HOST = 'smtp.163.com'                         #邮件smtp服务器
EMAIL_PORT = 25                                     #端口
EMAIL_HOST_USER = '15284816568@163.com'             #发件人
EMAIL_HOST_PASSWORD = 'adc279818'                   #发件人密码
DEFAULT_FROM_EMAIL = '玉秀文化 <15284816568@163.com>'  #收件人显示的发件人信息

 

send_mail() 每次发邮件都会建立一个连接,发多封邮件时建立多个连接

    from django.core.mail import send_mail

    send_mail('主题', '内容', '玉秀文化 <15284816568@163.com>',['729088188@qq.com'], fail_silently=False)

 

send_mass_mail() 是建立单个连接发送多封邮件,所以一次性发送多封邮件时 send_mass_mail 要优于 send_mail。

    from django.core.mail import send_mass_mail

    message1 = ('主题', '内容', '玉秀文化 <15284816568@163.com>', ['729088188@qq.com', '244831604@qq.com'])
    message2 = ('主题', '内容', '玉秀文化 <15284816568@163.com>', ['729088188@qq.com'])

    a = send_mass_mail((message1,message2), fail_silently=False)
    print(a)

 

如果我们想在邮件中添加附件,发送 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()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值