使用Django发送邮件
Django中内置了邮件发送功能,被定义在django.core.mail模块中。发送邮件需要使用SMTP服务器,常用的免费服务器有:163、126、QQ,下面以163邮件为例。

(1) 选择免费服务器,开启收发邮件功能。
163邮箱具体方法请参考:https://help.mail.163.com/faqDetail.do?code=d7a5dc8471cd0c0e8b4b8f4f8e49998b374173cfe9171305fa1ce630d7f67ac2cda80145a1742516
foxmail邮箱具体方法请参考:http://help.mail.163.com/faqDetail.do?code=d7a5dc8471cd0c0e8b4b8f4f8e49998b374173cfe9171305fa1ce630d7f67ac25c12dcb3d46222b6
outlook邮箱具体方法请参考: http://help.mail.163.com/faqDetail.do?code=d7a5dc8471cd0c0e8b4b8f4f8e49998b374173cfe9171305fa1ce630d7f67ac27535b97f102eda26
(2) 在Django配置文件settings.py中,设置邮箱的配置信息
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.163.com' # 如果是qq邮箱请更换为'smtp.qq.com
EMAIL_PORT = 25
#发送邮件的邮箱
EMAIL_HOST_USER = 'xxxxxxxx@163.com'
#在邮箱中设置的客户端授权密码
EMAIL_HOST_PASSWORD = '123456abc'
#收件人看到的发件人
EMAIL_FROM = '发件人'
在django.core.mail模块提供了send_mail来发送邮件。
send_mail(subject, message, from_email, recipient_list,html_message=None)subject 邮件标题
message 普通邮件正文, 普通字符串
from_email 发件人
recipient_list 收件人列表
html_message 多媒体邮件正文,可以是html字符串
from django.conf import settings
from django.core.mail import send_mail
```python
def send_email(request):send_mail(subject='这里是邮件标题',message='这里是邮件内容',from_email='tian@163.com', # 发件人recipient_list=['1206180814@qq.com'], # 收件人#收件人可以直接写,也可以从setting.py中配置中导入fail_silently=False)return HttpResponse('OK')
2、在django.core.mail模块提供了send_mass_mail来一次性发送多个邮件。
from django.core.mail import send_mail, send_mass_mail
def send_email(request):message1 = ('邮件标题1', '内容1', 'tian@163.com', ['1206180814@qq.com'])message2 = ('邮件标题2', '内容2', 'tian@163.com', ['1206180814@qq.com'])send_mass_mail((message1, message2), fail_silently=False)return HttpResponse('OK')# 注:send_mail 每次发邮件都会建立一个连接,发多封邮件时建立多个连接。而 send_mass_mail 是建立单个连接发送多封邮件,所以一次性发送多封邮件时 send_mass_mail 要优于 send_mail。
3、在邮件中添加附件,发送 html 格式的内容或者纯文本(text/plain)
from __future__ import unicode_literalsfrom django.conf import settings
from django.core.mail import EmailMultiAlternativesdef send_email(request):"""发送带附件"""msg = EmailMessage(subject='这是带附件的邮件标题',body='这是带附件的邮件内容',from_email='tian@163.com', # 也可以从settings中获取to=['1206180814@qq.com'])msg.attach_file('t2.xls')msg.send(fail_silently=False)return HttpResponse('OK')
原文参考:https://www.cnblogs.com/yizhipanghu/p/16083741.html
使用异步任务发送邮件参考链接:https://blog.csdn.net/qq_43030934/article/details/125658103?spm=1001.2014.3001.5502
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
