В современном мире автоматизация рутинных задач является ключом к эффективности. Одной из таких задач может быть массовая отправка электронных писем, например, для информационных рассылок. В этой статье мы рассмотрим, как настроить и использовать скрипт на Python для автоматической отправки писем с сервера Ubuntu.
Перед началом работы убедитесь, что на вашем сервере установлены Python и pip. Эти инструменты позволят нам работать с скриптами Python и управлять зависимостями. Если они еще не установлены, выполните следующие команды:
sudo apt updatesudo apt install python3-pip -y
Наш скрипт будет использовать стандартную библиотеку Python smtplib для отправки электронной почты и email для создания электронных писем. Ниже приведен код скрипта с подробными комментариями.
Создайте файл с именем send_emails.py и скопируйте в него следующий код:
import smtplibimport timefrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipart
# Параметры сервера и аккаунтаsmtp_server = "mail.adm.tools"port = 465 # для SSLlogin = "ваша_почта@ваше_доменное_имя.com"password = "Ваш_пароль_от_корпоративной_почты"
# Сообщениеsubject = "Тема вашего письма"body = """Текст вашего сообщения"""
# Чтение списка получателейwith open("recipients.txt", "r") as file:recipients = file.read().splitlines()
# Настройка соединения с серверомserver = smtplib.SMTP_SSL(smtp_server, port)server.login(login, password)
for recipient in recipients:msg = MIMEMultipart()msg['From'] = loginmsg['To'] = recipientmsg['Subject'] = subject
msg.attach(MIMEText(body, 'plain'))
try:server.sendmail(login, recipient, msg.as_string())print(f"Email sent to {recipient}")except Exception as e:print(f"Failed to send email to {recipient}. Error: {e}")
time.sleep(60) # Задержка в 1 минуту. Меняйте исходя из количества отправляемых писем, которое разрешено хостером.
server.quit()
Этот скрипт сначала устанавливает безопасное соединение с SMTP-сервером, используя SSL. Затем он читает список адресов электронной почты из файла recipients.txt, создает для каждого адреса электронное письмо с заданными темой и текстом, отправляет его и ожидает 1 минуту перед отправкой следующего сообщения.
Создайте файл recipients.txt в той же директории, что и ваш скрипт. В файле должен быть указан один адрес электронной почты на строку. Пример содержимого файла:
recipient1@example.comrecipient2@example.comrecipient3@example.com
Для запуска скрипта откройте терминал на сервере Ubuntu, перейдите в директорию с файлом send_emails.py и выполните команду:
python3 send_emails.py
Скрипт начнет отправку писем, выводя сообщения об успешной отправке или о возникших ошибках.
Автоматизация отправки электронных писем может существенно упростить рассылку и обеспечить более эффективное взаимодействие с клиентами или аудиторией. Важно использовать этот инструмент ответственно и с соблюдением всех правил и рекомендаций по электронной коммуникации.

