使用Django send_email发送邮件

  1. 创建Django项目:例如我创建的项目叫:django_send_email
  2. 创建一个App:例如我创建的App叫:sendemail
  3. 再settings.py文件中加入app:
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    'sendemail',  # 新加入的app
]
  1. 编写视图文件view.py:

Django框架已经内置写好的发送邮件的代码,我们只要使用相应的库就能实现发送邮件

from django.shortcuts import render, HttpResponse
from django.core.mail import send_mail
from django_send_email import settings


def send_email(request):
    result = send_mail(subject='测试',
                       from_email=settings.EMAIL_HOST_USER,
                       recipient_list=[settings.EMAIL_FROM],
                       fail_silently=False, message='内容')
    return HttpResponse(result)
  1. 在sendemail的app下新建urls.py文件,编辑这个文件:
from django.urls import path
from . import views


app_name = 'sendemail'
urlpatterns = [
    path('sendemail/', views.send_email, name='send_email'),
]
  1. 在django_send_email下的urls.py下加入:
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('sendemail.urls')),
]
  1. 在settings.py文件中加入:
EMAIL_HOST = 'smtp.qq.com'  # 邮件服务器地址
EMAIL_PORT = 25  # 端口号25 or 465
EMAIL_HOST_USER = '1343500013@qq.com'  # 用户名,可以自定义
EMAIL_HOST_PASSWORD = 'iutefzddpdidijgd'  # 邮箱授权码
EMAIL_USE_TLS = True  # 默认
EMAIL_FROM = '1343500013@qq.com'  # 发送人
  1. 运行项目,输入网址,项目正常运行。
    项目源代码:下载地址
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Django REST framework 中实现邮件批量发送,可以使用 Django 自带的邮件发送功能和 DRF 的 Serializer 来完成。 首先,在 Django 项目中配置邮件发送功能,具体步骤如下: 1. 在 settings.py 文件中添加以下配置: ``` EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' # 使用 SMTP 后端 EMAIL_HOST = 'smtp.example.com' # SMTP 服务器地址 EMAIL_PORT = 587 # SMTP 服务器端口号 EMAIL_USE_TLS = True # 是否使用 TLS 安全协议 EMAIL_HOST_USER = 'your_email@example.com' # 发送邮件的邮箱地址 EMAIL_HOST_PASSWORD = 'your_email_password' # 发送邮件的邮箱密码 ``` 2. 在 Django 项目中编写发送邮件的代码,例如下面的代码实现了邮件批量发送的功能: ```python from django.core.mail import send_mail from django.shortcuts import get_object_or_404 from rest_framework import status from rest_framework.response import Response from rest_framework.views import APIView from .models import User from .serializers import UserSerializer class EmailUsersView(APIView): def post(self, request): serializer = UserSerializer(data=request.data, many=True) if serializer.is_valid(): recipients = [] for user_data in serializer.validated_data: user = get_object_or_404(User, email=user_data['email']) recipients.append(user.email) subject = '邮件主题' message = '邮件内容' from_email = '发件人邮箱' send_mail(subject, message, from_email, recipients) return Response(serializer.validated_data, status=status.HTTP_200_OK) else: return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) ``` 在上面的代码中,我们首先使用 UserSerializer 对请求的数据进行反序列化,并验证数据的有效性。然后,我们遍历验证后的数据,获取每个用户的邮箱地址,并将其添加到收件人列表中。最后,我们使用 Django 自带的 send_mail 函数发送邮件。 最后,在 urls.py 文件中定义 URL 路由,将请求映射到 EmailUsersView 类中: ```python from django.urls import path from .views import EmailUsersView urlpatterns = [ path('email_users/', EmailUsersView.as_view(), name='email_users'), ] ``` 这样就完成了在 Django REST framework 中实现邮件批量发送的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈大憨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值