django通过邮件发送文件

django通过邮件发送文件

我使用的是qq邮箱发送的,前题是QQ邮箱要开通IMAP/SMTP服务。开通方式:QQ邮箱>>设置>>账户>>POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务。

在这里插入图片描述

setting.py设置

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' # 固定写法
EMAIL_HOST = 'smtp.qq.com'  # 腾讯QQ邮箱 SMTP 服务器地址
EMAIL_PORT = 465  # SMTP服务的端口号
EMAIL_HOST_USER = 'code@qq.com'  # 发送邮件的QQ邮箱
EMAIL_HOST_PASSWORD = ''  # 在QQ邮箱->设置->帐户->“IMAP......服务” 里得到的在第三方登录QQ邮箱授权码
EMAIL_USE_SSL = True
EMAIL_USE_TLS = False

views.py中发送邮件

from django.core.mail import EmailMessage
from rest_framework import viewsets, status, generics

class SendFileAPIView(generics.GenericAPIView):

    serializer_class = SendFileSerializer
    
    def post(self, request):
        instance_serializer = self.serializer_class(data=request.data)
        instance_serializer.is_valid(raise_exception=True)
        file_name = instance_serializer.validated_data.get('file_name')
        syspath = os.path.dirname(os.path.abspath(__name__))
        file_path = os.path.join(syspath, 'excelfile', file_name)
        if os.path.isfile(file_path):
            email = EmailMessage(
                '流调系统文件下载',
                file_name+'下载',
                'from@qq.com',
                ['to@qq.com'],
            )
            email.attach_file(file_path)
            email.send()
            return Response('success', status=status.HTTP_200_OK)
        else:
            return Response('no file', status=status.HTTP_200_OK)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值