Pull to refresh

Comments 22

А зачем именно в IMAP ящике сохранять, можно же в условные логи. Но да, раз уж готовая инфраструктура используется, почему бы нет. Честно говоря ожидал прочитать что-то про свой sendmail на Питоне )

Интересно, а какой timeout у подобной рассылки? Можно ли подобным методом положить кому-то извне ящик?

В своем коде timeout не задаю. По умолчанию SMTP используется значение socket._global_default_timeout.

А это абстрактная задача или реальный кейс Тензора?

Это реальная задача, которую мы решили в рамках педагогического проекта.

Извините, но автоматизация отправки писем это разве не шаг к спаму?

А Вы бы стали 4000 писем ручками отправлять?

Я б точно нет. Спам это когда отправляют письма которые пользователи не хотели бы получать. Нежелательные письма, не неразрешенные адреса.

А здесь же просто автоматизация рутинных действий.

Я конечно не питонщик(и не программист), но хранить логины и пароли в коде... не надо так. Хотя бы в ENV'ах.

Про параллельность, забор данных писать наверно не стоит, этожеж не продуктовый код?

Постановка задачи вызывает вопросы - зачем делать из почтового ящика базу данных? Давайте откровенно - вам письма в исходящих нужны чтобы всегда можно было найти когда отправили письмо и в какой текстовке. Не надо так. Воткните какую-ндь монгу и пишите в нее.

Воткните какую-ндь монгу и пишите в нее.

И если что-то понадобится найти - напишите свой интерфейс для взаимодействия с mongodb :)
А в готовом почтовом клиенте этот интерфейс уже есть, и он работает.

Постановка задачи вызывает вопросы

Да. Если так сильно хочется сохранять копии писем - есть поля СС, ВСС, и не нужно городить IMAP. Шлите копии себе на специальный ящик.

напишите свой интерфейс для взаимодействия с mongodb

MongoDBCompass? mongo-express?

Назовите поля русскими словами и поиск будет точно таким же ¯\_(ツ)_/¯ - { "кому":"Вася","Петя","Жора"}, можно даже сохранить пучек запросов и менять в них переменные, ну там - найти всех Василиев между ноябрем и декабрем.

Окей, сложно писать в могу? пишите в *.csv -> Excel -> Access - остановитесь на удобном для вас инструменте.

А в готовом почтовом клиенте этот интерфейс уже есть, и он работает.

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

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

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

Нам требовалось сохранить письма в исходящие. После отправки письма автоматически туда не попадают. Это делается с помощью IMAP.

Интересное решение с хранением писем в исходящих, тк я работаю в уц тоже нужно рассылать сертификаты для этого я на фласке сделал рассылку с веб интерфейсом в котором нужно указать тему и приложить эл таблицу в которой все данные для заполнения шаблона удостоверения и шаблона эл письма, после чего пользователю приходит письму с текстом и вложение в виде сертификата в пдф, а мне отображается список кому отправилось а кому нет ... Если интересно я соберусь с мыслями и напишу статью про это

Буду рада почитать Вашу статью!

https://habr.com/ru/articles/810757/ написал как смог все таки первая статья

А каким образом можно защитить пароль ящика? Чтобы в открытом виде его не показывать в коде?

запускать код только на устройстве к которому имеет доступ только сотрудник ответственный за рассылку?

Ограничение доступа тут - этого мало, доступ можно всегда изменить по человеческому фактору или из-за вируса и т.д.

Нужно, как пример, чтобы пароль хранился в каком-то Vault и переменной вытаскивать оттуда. Или хранить в зашифрованном виде пароль где-то в другом месте или чтобы вытаскивать пароль из БД.

Или что-то еще. Вот поэтому хотел выяснить как правильно тут поступить, если использовать этот скрипт.

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

Согласна, рекомендуется сохранять все пароли и данные доступа в отдельном файле. Мой пример представлен для обеспечения ясности, поэтому все данные сосредоточены в одном месте.

Рекомендуется сохранять все пароли и данные доступа в отдельном файле. Мой пример представлен для облегчения работы и обеспечения ясности: все данные сосредоточены в одном месте, что позволяет вам скопировать и запустить код без дополнительных шагов.

Понравилась ваша статья, хотел бы предложить решение, например логин, пароль от почты хранить, например в конфигах в зашифрованном виде или в redis, так как скрипт могут увидеть злоумышленники. Также хотел бы, чтобы был шаг 0. Создать почту и поставить IMAP пароль для отправки.

Sign up to leave a comment.