Skip to main content

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)

Uploaded Source

Built Distribution

mailing_backend-1.0.5-py3-none-any.whl (4.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page