Переезд
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