Один из способов, который я решил в прошлом, - это использование файлов qmail .qmail
( docs ).
Обычно вы настраиваете qmail и указываете свой адрес электронной почты (для простоты использования предположим, что proc@whever.com - ваш адрес электронной почты) в вашем домашнем каталоге. В этом каталоге вы настроили файл .qmail-proc
для обработки почты.
Это позволяет вам использовать полноценный SMTP-сервер на вашем сервере, включая фильтрацию спама, переадресацию, псевдонимы, все эти забавные вещи. Затем вы можете передать данные из электронной почты в приложение. В вашем случае я бы предложил сделать Mangement Command в Django для обработки электронного письма (я назову его proc_email
). Таким образом, ваш .qmail-proc
может выглядеть так:
/var/spool/mail/proc
| /www/django/myproject/manage.py proc_email
Сохраняет копию электронного письма в /var/spool/mail/proc
, а затем передает письмо сценарию во второй строке. Само электронное письмо передается на proc_email
через sys.stdin
. Просто прочитайте письмо оттуда и сохраните его в ваших моделях Django.
Если вам потребуется позже обработать электронную почту для разных адресов, вы также можете настроить псевдонимы, которые указывают на ваш домашний каталог, и использовать файлы .qmail-<username>
для каждого псевдонима. Позволяет вам передавать другие флаги (например, имя пользователя для каждого псевдонима) в proc_email
при необходимости.
Я должен отметить, что это не самое простое решение, но оно может масштабироваться и является чертовски пуленепробиваемым.