Day29 实作信件发送功能(2)

昨天我们已经做好事前准备了,那我们今天就回到views里面,来撰写我们的程序吧!

而我们这次使用的函式是Django里的send_mail(),而他的格式是这样:

send_mail(
    'Subject here',
    'Here is the message.',
    '[email protected]',
    ['[email protected]'],
    fail_silently=False,)

第一个要输入的是你的标题,第二个是你里面要输入的讯息,第三个是寄件人的电子信箱,第四个是收件人的电子信箱。

知道他的格式後,我们就来开始撰写我们的程序了吧!
而以下是我帮大家先写好的程序,大家可以先试试看效果!

from django.http.response import JsonResponse
from django.shortcuts import render
from django.core.mail import send_mail
from Test import settings
import json
from django.views.decorators.csrf import csrf_exempt
# Create your views here.
@csrf_exempt
def send(request):
    if request.method == "POST":
        data = request.body
        data = json.loads(data)
        try:
            sender = settings.DEFAULT_FROM_EMAIL
            receiver = "[email protected]"
            title = "尝试发送信件"
            message = "恭喜你成功发送讯息!"
            send_mail(title, message, sender, [receiver])
            mess = {"message":"0"}
        except Exception as e:
            print(e)
            mess = {"message":"1"}
    return JsonResponse(mess)

上面先把一些需要的东西import上去後,第一行的@csrf_exemp是表示不加入csrf的保护,不打这串的话可能会报错。
之後把我们的request请求方法设定成POST,接下来设定data的型态,设定完後,就开始设定sned_mail()里面需要的变数了。

大家应该还记得前几天有先在setting设定我们的资料吗?而sender就是设定成DEFAULT_FROM_EMAIL,receiver就输入自己要接收信件的信箱,後面的title及message就可以依照自己的想法写。
而mess这个变数是会显示在Postman上面的,如果显示0的话就代表已经成功,显示1的话就可能程序有发生什麽错误,需要Debug。

这边设定完了之後,要记得到urls设定路径:

设定完後,就把服务器run起来。之後回到Postman输入完网址後,按send後,应该会出现下面的画面:

而下面message出现0就代表成功发送了,可以到你的信箱看看有没有收到信件。

收到这封信就代表你已经成功了!
今天也就差不多到这边了!这系列也差不多到了尾声了!
谢谢各位这几天的支持,其他的我们就留在明天的结语吧!
大家掰掰~


<<:  Day29 - [Shioaji] 超入门!永丰证券程序交易API快速上手 (2)

>>:  虹语岚访仲夏夜-30(打杂的Allen终)

[Golang]go test指令说明-心智图总结

1. -cpu a. 用途: 模拟程序在不同CPU核心数的计算机,效能表现。 b. 用来设定测试执行...

Day8 使用分支

大家好我是乌木白,今天我们要讲的是分支(branch)。 什麽是分支(branch)? 分支就是一...

D00 - 缘起

大家好我是鳕鱼,历年来看了很多届铁人赛,今年终於鼓起勇气填坑参赛了。 回想自身技术发展历程,还真的是...

[Day23] HTB Buff

URL : https://app.hackthebox.eu/machines/263 IP :...

.Net Core Web Api_笔记22_Swagger自订文件并读取API注解描述

Swagger刚开始可以将其理解成网页版本的postman 我们可以对其测试发送资料看回传结果 在预...