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)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aa9a1f22d6b16bac490ad1fc7548ddf425f1703b04bc33afef03948c0d84e66e
|
|
| MD5 |
ac30252ea2fa366ff55b796c860ee6db
|
|
| BLAKE2b-256 |
1c34fa9acb3badd4470b81b883d7459275bc21835156e0db84a8bbfb3e23dc8a
|
File details
Details for the file mailing_backend-1.0.5-py3-none-any.whl.
File metadata
- Download URL: mailing_backend-1.0.5-py3-none-any.whl
- Upload date:
- Size: 4.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
22c24cd7f8d1325328383c1a88800195a65e39878894f530dd3cff4dacfc40af
|
|
| MD5 |
87c9a14633cb8d13bdff8613d7ff5138
|
|
| BLAKE2b-256 |
f7188cd4b5c96aa8ec91dd544cbb06d7353cbb951bb4aff78c609ee6b3143af3
|