Как стать автором
Обновить

Комментарии 8

Ждем статей на хабре в духе «Как написать Hello, world На Python/PHP/VisualBasic»
Для прочитавших статью.
Попробовали? Поигрались? И достаточно. А теперь идём сюда Python email и изучаем как правильно составляется письмо, чтоб оно не улетало в спам и не выглядело «странно».
Если хотите отправлять через gmail и у вас стоит двухфаторная авторизация (по номеру телефона) — не забудьте создать «пароль для приложения» и использовать его в скрипте
Такая важная часть, как заголовки, совсем не освещена.

По ссылке я выложил скрипт из рабочей системы рассылки писем в фоновом режиме. Может использоваться как sendmail, так и smtp.
https://gist.github.com/asakasinsky/1e4fc7a2b809ff8c01da0cbcf9ba9e1c

mailer.py — это celery-задача, в которую передаётся шаблон письма html и plain-text, тема рассылки, список получателей, и отправитель.
sendmail.py — реализация отправления письма

В качестве MTA используется postfix, настроенный по этой инструкции:
https://github.com/asakasinsky/Development-book/blob/master/UsefulThings/MailServerSettings.md

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

> Для того чтобы авторизоваться, нужно всего лишь написать
> smtpObj.login('justkiddingboat@gmail.com','just123kidding')

это аутентификация, а не авторизация. Почему то многие часто путают авторизацию и аутентификацию.

Аутентификация — проверка логина и пароля по определенному алгоритму, например, PLAIN/LOGIN/CRAM-MD5.

Авторизация — проверка прав пользователя, который прошел аутентификацию. Например, мы разрешаем отправлять пользователю justkiddingboat@gmail.com письма только на один адрес user@example.com
Пожалуйста, используйте PEP8. Это одна из вещей, которая делает Python прекрасным
Статья несомненно полезная для совсем новичков, но я думаю переводчику следовало б добавить какие-либо решения или возможности от себя: рассылка, или может поддержку шаблонов писем. В данном контексте это перевод документации модуля, не более…
Зарегистрируйтесь на Хабре, чтобы оставить комментарий