Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Адресовано большому специалисту по Python, так как задач разных много.

Одна из них:

Нужно реализовать модуль, который мы подключим к нашему общему большому проекту, по рассылке писем.

В процессе рассылки писем, нам нужно понимать какой процент писем идет в папку спам, какой во входящие.

Соответственно, необходимо разработать модуль, который будет контрольные

почтовые ящики парсить, искать в письмах определенные метки, далее

смотреть в каком папке (спам/входящие) письма с нужными метками попало и

делать return результата или писать в БД.

То есть мы даем список емайл ящиков, например 100шт, в них будут письма с

определенными метками, задача просканировать каждый ящик на предмет

нахождения меток для определения нужных нам писем и сопоставить в какой

папке они находятся.

Например:

метка | где письмо

#r498 | входящие

#r498 | спам

#r498 | спам

Таким образом на выходе получаем что метка #r498 в 66% случаях находится в спаме  и 33% в во входящие.

Так делаем по каждой метке. Метка в данном случае просто будет

генерироваться в процессе рассылки, для идентификации самой рассылки и

подаваться на вход вашего модуля, также будет подаваться на вход время

старта рассылки. Соответственно нужно будет сканировать письма датой

позднее старта рассылки и с определенными метками.

Желательно работать многопоточно и быстро, практически результат был в Real-Time в процессе рассылки.

(Желательно также иметь возможность подключаться через прокси)

Работать должно на mail.ru/ya.ru/gmail.com там протокол один, по идее реализовав в одном месте, везде должно отрабатывать.

##############

Этот модуль нужно разработать как django app с использованием celery task (http://docs.celeryproject.org/projects/django-celery/en/2.4/introduction.html).

Делается некий асинхронный таск который на вход принимает уникальную метку и id рассылки. Рассылка это django model с названием "campaign", при разработке для себя можете создать маленький модель который в другом app, со следующими полями:

id, emails_total_count, emails_spam_count, emails_inbox_count

После завершения разработки или в какой то момент, просто поменяем путь импорта и подключим в основной проект.

Таск проверяет отправленные письма и в конце результат напишет на бд (модел). Для потерянных, т.е. для тех писем которые нету не в спам и не во входящих, ничего делать не нужно, просто нужно написать на логи что не найден. Для логирования нужно использовать стандартный logging django (https://docs.djangoproject.com/en/2.2/topics/logging/).

Насчет отметки как прочитанное. Думаю этого делать не нужно, скорее нам нужно будет сделать некий чистильщик, который удаляет уже ненужные письма чтобы не занимать место в почтах (в том же gmail место ограничено), но это нужно отдельно посмотреть, не в рамках этой задачи, возможно celery таск по проверке будет триггерить следующий таск по чистке по завершений.

Нужные аккаунты с прокси должно хранится в db и должны быть подключены к django admin. Т.е. нужна таблица accounts где хранится логин пароль и domain (это можно вынести на отдельную таблицу), вторая таблицы proxies это просто список прокси возможно с логин пароль для авторизаций на прокси, и нужна таблица где устанавливается связть между accounts и proxies там настраивается для какого аккаунта нужно использовать какой прокси.

Итого, используемые технологий:

django - 2.1.7

celery - 4.2.1

база данных mysql (но так как используется django orm при разработке можете использовать sqlite)

os в основном linux

##############

Вознаграждение обговаривается индивидуально

5 лет назад
easycode
Роман 
37 летРоссия
8 лет в сервисе
Был
4 года назад