我的应用程序将React用于前端以及Django和Django RestFramework。我正在尝试发送电子邮件。从React Side不可能。所以我想在这里用
在django中创建模型邮件class Mail(models.Model):
MAIL_SENT= (
('Y', 'Yes'),
('N', 'No'),
)
send_to= models.CharField(max_length=120)
reply_to= models.CharField(max_length=120)
message= models.TextField()
subject= models.TextField()
mail_sent= models.CharField(max_length=1, default="Y", choices=MAIL_SENT)
def __self__(self):
return self.send_to
我想做的是在post方法时为Mail和send方法创建一个API端点。 有人可以帮我吗?
答案 0 :(得分:0)
Django提供如下send_mail函数:
from django.core.mail import send_mail
send_mail(
'Subject here',
'Here is the message.',
'from@example.com',
['to@example.com'],
fail_silently=False,
)
答案 1 :(得分:0)
您可以使用Django send_mail
函数
示例:
from django.core.mail import send_mail
send_mail(
'Subject here',
'Here is the message.',
'from@example.com',
['to@example.com'],
fail_silently=False,
)
您必须使用mail_port
,默认from_email
和password
。
参考:https://docs.djangoproject.com/en/2.2/topics/email/
===============================
因此您可以像这样创建端点
from django.core.mail import send_mail
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
class MailSender(APIView):
def post(self, request, format=None):
to_email = request.data.get("to_email")
send_mail(
'Subject here',
'Here is the message.',
'from@example.com',
['to_email'],
fail_silently=False,
)
return Response({"message": "e-mail has been sent successfully"},
status=status.HTTP_200_OK)
您还可以使用threading
发送邮件,然后返回响应。