Автоматизируйте скучные электронные письма с помощью Python

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

Неважно, являетесь ли вы программистом, специалистом по данным или инженером, скорее всего, вам приходится ежедневно читать электронные письма и отвечать на них. Эта деятельность не добавляет ценности нашей профессии, но останавливает наш рабочий процесс и отнимает наше драгоценное время.

Решение? Автоматизируйте это с помощью Python!

В этом руководстве я покажу вам, как автоматизировать отправку электронных писем с помощью Python. В этом руководстве мы будем использовать Gmail, поэтому убедитесь, что у вас есть учетная запись Gmail, чтобы протестировать эту автоматизацию.

Table of Contents
1. Turn On 2-Step Verification
2. Sending Email with Python
 - Import the libraries and set email sender and receiver
 - Set the subject and body of the email
 - Add SSL
 - Log in and send the email
3. Schedule the Python Script to Run Monthly, Weekly, or Daily

Если вам не хочется читать, вы можете вместо этого посмотреть мое видео!

1. Включите двухэтапную аутентификацию

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

Раньше мы могли легко подключиться к Gmail с помощью Python, включив «Менее безопасный доступ к приложению», но эта опция больше недоступна. Теперь нам нужно включить двухэтапную проверку, чтобы получить 16-значный пароль, который мы можем использовать для входа в Gmail с помощью Python.

Сначала перейдите в свою Учетную запись Google, выберите учетную запись, которую хотите использовать для этого руководства, и на левой панели выберите параметр Безопасность.

Затем прокрутите вниз, пока не найдете раздел «Вход в Google». Здесь нам нужно нажать на «Двухэтапная проверка».

После этого мы увидим новую страницу. Нам нужно нажать «Начать».

Google снова попросит авторизоваться. Затем мы должны ввести номер телефона и нажать «Далее». Мы получим код для подтверждения нашего номера телефона. После того, как мы введем код, мы должны увидеть следующую страницу.

Нам нужно нажать «Включить».

Если все было настроено правильно, мы увидим новую страницу с сообщением «Двухэтапная аутентификация включена».

Наконец, нам нужно перейти в раздел Пароли приложений, поэтому снова зайдите в свою учетную запись Google, нажмите Безопасность, прокрутите вниз, пока не найдете раздел Вход в Google и выберите Пароли приложений.

Нам нужно снова войти в систему. После этого мы должны увидеть страницу ниже.

В раскрывающемся списке «Выберите приложение» выберите «Другое (пользовательское имя)» и введите любое имя, которое вы хотите. Я назову свой «Python», а затем нажму «Создать».

После этого мы должны увидеть новую страницу с 16-значным паролем внутри желтого поля, как показано ниже.

Все готово! Мы будем использовать этот 16-значный пароль для входа в нашу учетную запись Gmail с помощью Python.

Теперь вы можете либо скопировать этот пароль и вставить его в переменную в вашем скрипте Python, либо скрыть пароль, используя переменные среды (что я вам настоятельно рекомендую). Вы можете следовать моему руководству по созданию переменных среды в Windows и macOS.

2. Отправить электронную почту с помощью Python

Как только мы включим двухэтапную проверку и получим наш 16-значный пароль, мы можем начать писать код.

Импортируйте библиотеки и установите отправителя и получателя электронной почты

Чтобы отправлять электронные письма с помощью Python, нам нужно использовать следующие встроенные библиотеки Python.

import smtplib
import ssl
from email.message import EmailMessage

email_sender = '[email protected]'
email_password = 'write-password-here'
email_receiver = 'write-email-receiver-here'

Кроме того, мы устанавливаем отправителя электронной почты и пароль (это адрес электронной почты, который мы использовали для включения двухэтапной проверки), а также получателя электронной почты.

Обратите внимание, что получатель электронной почты не обязательно должен быть учетной записью Gmail, но может быть из другой службы электронной почты.

Установите тему и тело письма

Теперь нам нужно определить предмет и тело. Мы можем написать здесь все, что захотим.

subject = 'Check out my new video!'
body = """
I've just published a new video on YouTube: https://youtu.be/2cZzP9DLlkg
"""

Обратите внимание, что я открываю тройные кавычки в теле, чтобы написать несколько строк.

После этого мы создаем экземпляр класса EmailMessage и используем ранее созданные переменные для электронных писем, темы и тела.

em = EmailMessage()
em['From'] = email_sender
em['To'] = email_receiver
em['Subject'] = subject
em.set_content(body)

Добавить SSL

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

context = ssl.create_default_context()

Войдите и отправьте письмо

Наконец, мы указываем hostsmtp.gmail.com, подключаемся через порт 465 и используем context, определенный на предыдущем шаге, для входа в систему и отправки электронной почты.

Поздравляем! Мы только что отправили электронное письмо с помощью Python. Перейдите в папку «Входящие» email_receiver, чтобы увидеть отправленное нами электронное письмо.

Вот письмо, которое я получил.

Вы можете проверить скрипт, который мы создали в этом руководстве, на моем Github.

Примечание. Если после запуска сценария вы получите ssl.SSLCertVerificationError, найдите файл с именем Install Certificates.command и установите его.

Для этого перейдите в «Приложения», щелкните папку с именем «Python 3.X» и дважды щелкните файл Install Certificates.command.

После завершения установки вы не должны получать никаких сообщений об ошибках при запуске скрипта.

3. Запланируйте запуск скрипта Python ежемесячно, еженедельно или ежедневно.

Вы можете запланировать выполнение этого скрипта Python ежедневно или еженедельно, используя crontab в macOS и планировщик задач в Windows.

Чтобы узнать, как это сделать, ознакомьтесь с моим руководством ниже.



Автоматизируйте свою жизнь! Получите БЕСПЛАТНУЮ памятку по автоматизации, присоединившись к моему списку рассылки с более чем 10 000 человек.

Если вам нравится читать такие истории и вы хотите поддержать меня как писателя, подумайте о том, чтобы зарегистрироваться и стать участником Medium. Это 5 долларов в месяц, что дает вам неограниченный доступ к тысячам руководств по Python и статьям по науке о данных. Если вы зарегистрируетесь по моей ссылке, я получу небольшую комиссию без каких-либо дополнительных затрат для вас.