Skip to main content

Django app for an endpoint mailing.

Project description

Mailing backend

Проект для интеграции МС рассылки с другими Django МС.

Подготовка

Загрузить pip:

pip install -i https://test.pypi.org/simple/ mailing-backend

Добавить проект в INSTALLED_APPS

# File: settings.py

INSTALLED_APPS = [
    ...
    "mailing_backend",
]

Установить переменную EMAIL_ENDPOINT_URL

# File: settings.py

EMAIL_ENDPOINT_URL = "http://127.0.0.1:8000/mailing/message-send/"

Пример использования:

serializers.py

#serializers.py
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

from django.core.mail import EmailMessage
from mailing_backend.backend import EndpointEmailBackend
from my_proj.serializers import SendUserMSSerializer

#views.py
class MessageSendMSView(APIView):

    queryset = Message.objects.all()
    serializer_class = SendUserMSSerializer #пример обращения к сериализатору

    def post(
        self, request: Request, *args: Any, **kwargs: Any
    ) -> Response:  

        mes_ser = SendUserMSSerializer(data=request.data)
        
        message = EmailMessage()
        message.subject = mes_ser.initial_data.get("subject", '') #string
        message.body = mes_ser.initial_data.get("body", '') #string
        message.to = mes_ser.initial_data.get("email_list", []) #list
        message.from_email = mes_ser.initial_data.get("from_message", '') #string

        backend = EndpointEmailBackend()
        result = backend.send_messages([message])
        return Response(result)

urls.py

#urls.py
path("message-ms-send/", views.MessageSendMSView.as_view(), name="send"),

Сборка

Как собрать проект локально

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.1.tar.gz (3.6 kB view hashes)

Uploaded Source

Built Distribution

mailing_backend-1.0.1-py3-none-any.whl (4.3 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