Python и рассылка писем

Python и рассылка писем

Привет всем! Давненько я не писал в блог, но это вполне объяснимо — лето, солнце… Но сегодня, лежа на пляже я вдруг подумал — почему бы не продолжить затронутую ранее тему взаимодействия Python и электронной почты и разобрать вопрос, который звучит как: Python и рассылка писем?

Сказано — сделано. Ниже — сырой код программы, написанный «на коленке», основная суть которого сводится к отправке письма на определенный адрес почты. Текст программы очень прост, тем более используется стандартная библиотека smtplib, подробности работы с которой вы можете прочитать тут.

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

  1. import smtplib #Подключаем библиотеку для работы с почтой
  2. from email.mime.text import MIMEText #Подключаем библиотеку для работы с оформлением в почте
  3. from email.header import Header #Подключаем дополнительную библиотеку для оформления почты
  4.  
  5. def send_mail(): #Создаем функцию, отвечающую за отправку письма
  6. 	mailsender = smtplib.SMTP('smtp.gmail.com', 587) #Говорим библиотеке, что соединяемся с сервером Gmail по порту 587
  7. 	mailsender.starttls() #Подключаем шифрование
  8. 	mailsender.login('Адрес почты отправителя', 'Пароль к почте отправителя') #Создаем переменную, которая включаем в себя адрес и пароль к почте, с которой будет осуществляться отправка письма
  9. 	mail_recipient = 'Адрес почты получателя' #Тут все понятно :) 
  10. 	mail_subject = 'Тема сообщения' #Переменная, отвечающая за тему письма
  11. 	mail_body = 'Текст сообщения' #Переменная, отвечающая за текст письма
  12. 	msg = MIMEText(mail_body, 'plain', 'utf-8') #Указываем кодировку и оформление письма
  13. 	msg['Subject'] = Header(mail_subject, 'utf-8') #Указываем кодировку темы письма
  14. 	mailsender.sendmail('Адрес почты отправителя', mail_recipient, msg.as_string()) #Заполняем письмо в стиле: кто отправляет, кому отправляет, и что отправляет
  15. 	mailsender.quit() #Закрываем соединение с почтовым сервером
  16. 	print('Сообщение на адрес', mail_recipient, 'отправлено') #Выводим сообщение, что письмо успешно отправлено (как контролировать успешность отправки - поговорим позднее) 
  17.  
  18. send_mail() #Запускаем работу функции

Примеров использования данного метода — куча. У меня, например, отправка письма используется в программе, которая с определенной периодичностью проверяет несколько страниц на определенных сайтах, и в случае, если titles не совпадает с указанным — отправляет письмо с текстом на определенный адрес. Как видите — можно не только спамить 😉

И конечно же, что в случае необходимости код вполне легко модифицируется для создания спам-машины: покупаем (проверенный магазин аккаунтов вот здесь) некоторое количество почтовых адресов, необходимых для рассылки, подключаем их, например, в виде Excel-файла (как работать с Excel — я писал ранее), и начинаем спамить рассылку, подменяя все время адрес получателя по циклу (либо из списка, либо из подключенного файла). Кстати, как вариант — сделаю спам-машину в ближайшее время, вдруг кому будет интересно.

Код в полном виде доступен так же на Git.

Спасибо за внимание! Как всегда в случае возникновения вопросов — пишите на почту, или в Telegram (окошко с ботом светится в правом нижнем углу).