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 details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded Python 3

File details

Details for the file mailing_backend-1.0.5.tar.gz.

File metadata

  • Download URL: mailing_backend-1.0.5.tar.gz
  • Upload date:
  • Size: 3.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.7

File hashes

Hashes for mailing_backend-1.0.5.tar.gz
Algorithm Hash digest
SHA256 aa9a1f22d6b16bac490ad1fc7548ddf425f1703b04bc33afef03948c0d84e66e
MD5 ac30252ea2fa366ff55b796c860ee6db
BLAKE2b-256 1c34fa9acb3badd4470b81b883d7459275bc21835156e0db84a8bbfb3e23dc8a

See more details on using hashes here.

File details

Details for the file mailing_backend-1.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for mailing_backend-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 22c24cd7f8d1325328383c1a88800195a65e39878894f530dd3cff4dacfc40af
MD5 87c9a14633cb8d13bdff8613d7ff5138
BLAKE2b-256 f7188cd4b5c96aa8ec91dd544cbb06d7353cbb951bb4aff78c609ee6b3143af3

See more details on using hashes here.

Supported by

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