Что такое безопасный способ отправки электронной почты с использованием Python и Gmail в качестве поставщика?
Я пытаюсь отправить электронную почту себе, используя Python script, и, к счастью, я наткнулся на это сообщение:
Как отправить электронное письмо с помощью Gmail в качестве поставщика с помощью Python?
Проблема в том, что smtplib отправляет пароль для script в текстовом виде, и я скептически отношусь к его безопасности. Далее мой script содержит мое имя пользователя и пароль в виде обычного текста. Есть ли хорошие способы использования Python и отправки писем без сохранения моего пароля в виде обычного текста?
Я также видел это в StackOverflow:
Безопасность Python smtplib
но ответ не полностью помогает мне разрешить этот конфликт. Однако я еще не готов отказаться.
Дополнительная информация: Я пытаюсь настроить мой малиновый Pi как сервер, который скрещивается через веб-сайт. Когда какая-то особенность сайта изменяется, я хочу получать уведомление по электронной почте. Тем не менее, я не хочу оставлять свой Pi сидеть с помощью script, который имеет мое имя пользователя и пароль в виде обычного текста.
Ответы
Ответ 1
В соединении используется STARTTLS, поэтому его не отправляют через Интернет в ясном тексте.
Функция server.starttls()
запускает зашифрованную связь с сервером на порту 465 вместо обычного порта 25 для незашифрованного почтового трафика SMTP.
Ответ 2
Очевидным решением было бы использовать
getpass.getpass()
чтобы получить пароль в начале работы и сохранить его в памяти.
Ответ 3
Даже используя starttls
, я просто заблокирован Gmail от отправки электронной почты с моего Python script (который работал в прошлом)... Я получаю SMTPAuthenticationError
со ссылкой для продолжения входа через браузер, что не помогает моему Python script пытаться отправить почту через smtplib
. У меня нет настройки "2-х ступенчатая проверка" в моей учетной записи.
Мне нужно было перейти в мою учетную запись Google (в браузере) и выбрать вариант "включить доступ для менее безопасных приложений"
https://www.google.com/settings/security
Изменение, которое позволило моему script снова работать. Похоже, что Google действительно хочет, чтобы мы использовали двухэтапную аутентификацию и, следовательно, пароль для конкретного приложения, продвигаясь вперед. Думаю, я сделаю это и смирюсь с необходимостью вводить SMS-код для входа в мой адрес электронной почты сейчас, а затем...