Django app for an endpoint mailing.
Project description
Mailing backend
Проект для интеграции МС рассылки с другими Django МС.
Подготовка
Скачать через pip:
pip install mailing-backend==1.0.5
settings.py
Добавить проект в INSTALLED_APPS
# File: settings.py
INSTALLED_APPS = [
...
"mailing_backend",
]
Установить переменную EMAIL_ENDPOINT_URL
# File: settings.py
EMAIL_ENDPOINT_URL = "http://127.0.0.1:8000/api/v1/mailing/message-send/"
Установить переменную EMAIL_BACKEND
# File: settings.py
EMAIL_BACKEND = "mailing_backend.backend.EndpointEmailBackend"
Пример использования:
serializers.py
#serializers.py
from rest_framework import serializers
class SendUserMSSerializer(serializers.Serializer):
subject = serializers.CharField()
body = serializers.CharField()
email_list = serializers.ListField(child=serializers.CharField(max_length=254))
from_message = serializers.CharField(required=False, allow_blank=True)
views.py
#views.py
from typing import Any
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework.request import Request
from django.core.mail import EmailMessage
from ma_apps.serializers import SendUserMSSerializer
class MessageSendMSView(APIView):
serializer_class = SendUserMSSerializer #пример обращения к сериализатору
def post(
self, request: Request, *args: Any, **kwargs: Any
) -> Response:
message_serializer = SendUserMSSerializer(data=request.data)
message = EmailMessage()
message.subject = message_serializer.initial_data.get("subject", '') #string
message.body = message_serializer.initial_data.get("body", '') #string
message.to = message_serializer.initial_data.get("email_list", []) #list
message.from_email = message_serializer.initial_data.get("from_message", '') #string
result = message.send()
return Response(result)
urls.py
#urls.py
from appms import views
from django.urls import path
urlpatterns = [
path("message-ms-send/", views.MessageSendMSView.as_view(), name="send"),
]
Пример запроса
{
"subject": "Тема сообщения",
"body": "Содержание сообщения",
"email_list": ["example1@mail.ru", "example2.@mail.ru"],
"from_message": "Sender"
}
Сборка
Как собрать проект локально
python3 -m pip install build
python3 -m build
Проверка собранного пакета
python3 -m pip install twine
twine check dist/*
Выкладывание проекта в PYPI
twine upload dist/*
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
mailing_backend-1.0.5.tar.gz
(3.6 kB
view hashes)
Built Distribution
Close
Hashes for mailing_backend-1.0.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22c24cd7f8d1325328383c1a88800195a65e39878894f530dd3cff4dacfc40af |
|
MD5 | 87c9a14633cb8d13bdff8613d7ff5138 |
|
BLAKE2b-256 | f7188cd4b5c96aa8ec91dd544cbb06d7353cbb951bb4aff78c609ee6b3143af3 |