Переезд
This commit is contained in:
commit
baae729ad4
2 changed files with 53 additions and 0 deletions
7
README.md
Normal file
7
README.md
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
# Mail sender
|
||||||
|
## Скрипт для создания архива и отправки его по почте
|
||||||
|
Скрипт проверяет в папке `/test` наличие папки с сегодняшней датой в имени (задаётся в переменной `folder_path`).
|
||||||
|
Далее содержимое папки помещается в архив и отправляется почтой.
|
||||||
|
SMTP сервер без аутентификации задаётся в переменной `smtp_server`.
|
||||||
|
Список получателей задаётся в списке `recipients`.
|
||||||
|
Адрес отправителя устанавливается в строке `msg['From']`
|
||||||
46
mail_sender.py
Normal file
46
mail_sender.py
Normal 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} удален.')
|
||||||
Loading…
Add table
Reference in a new issue