Переезд

This commit is contained in:
Magnus Root 2025-07-30 15:43:10 +03:00
commit baae729ad4
2 changed files with 53 additions and 0 deletions

7
README.md Normal file
View file

@ -0,0 +1,7 @@
# Mail sender
## Скрипт для создания архива и отправки его по почте
Скрипт проверяет в папке `/test` наличие папки с сегодняшней датой в имени (задаётся в переменной `folder_path`).
Далее содержимое папки помещается в архив и отправляется почтой.
SMTP сервер без аутентификации задаётся в переменной `smtp_server`.
Список получателей задаётся в списке `recipients`.
Адрес отправителя устанавливается в строке `msg['From']`

46
mail_sender.py Normal file
View file

@ -0,0 +1,46 @@
#!/usr/bin/env python3
import os
import zipfile
import smtplib
from email.message import EmailMessage
from datetime import datetime
# Проверка наличия папки с текущей датой
today_date = datetime.today().strftime('%Y-%m-%d')
folder_path = f'/test/{today_date}'
if not os.path.exists(folder_path) or not os.path.isdir(folder_path):
print(f'Папка {folder_path} не существует.')
exit()
# Архивирование содержимого папки в zip
zip_filename = f'{folder_path}.zip'
with zipfile.ZipFile(zip_filename, 'w') as zipf:
for root, _, files in os.walk(folder_path):
for file in files:
file_path = os.path.join(root, file)
zipf.write(file_path, os.path.relpath(file_path, folder_path))
print(f'Архив {zip_filename} успешно создан.')
# Отправка почты без авторизации
# Настройки SMTP сервера
smtp_server = 'Ваш SMTP-сервер'
smtp_port = 25 # Порт SMTP-сервера (обычно 25)
# Список получателей
recipients = ['Получатель 1', 'Получатель 2','Получатель 3']
# Формирование письма
msg = EmailMessage()
msg['Subject'] = f'Название темы {today_date}'
msg['From'] = 'Адрес отправителя'
msg['To'] = ', '.join(recipients)
msg.set_content(f'Тело письма')
# Прикрепление архива к письму
with open(zip_filename, 'rb') as f:
msg.add_attachment(f.read(), maintype='application', subtype='zip', filename=os.path.basename(zip_filename))
# Отправка письма
try:
with smtplib.SMTP(smtp_server, smtp_port) as server:
server.send_message(msg)
print('Письмо успешно отправлено.')
except Exception as e:
print(f'Ошибка отправки письма: {e}')
finally:
# Удаление временного архива
os.remove(zip_filename)
print(f'Архив {zip_filename} удален.')