Автоматизация отправки ежедневных отчетов по электронной почте с помощью Python

Автоматизация отправки ежедневных отчетов по электронной почте с помощью Python

Автоматизация отправки ежедневных отчетов по электронной почте с помощью Python

Здравствуйте! Автоматизация повседневных задач, таких как отправка отчетов по электронной почте, может значительно упростить рабочий процесс. В этой статье я расскажу, как создать скрипт на Python, который будет генерировать и отправлять ежедневные отчеты по электронной почте. Мы рассмотрим необходимые шаги по установке библиотек, созданию скрипта и его настройке для ежедневного выполнения.

Установка необходимых библиотек

Для отправки электронной почты и автоматизации задач с использованием Python нам понадобятся библиотеки smtplib, email и schedule. Установим их с помощью pip:

pip install smtplib email schedule

Шаг 1: Создание скрипта

Наш скрипт будет состоять из следующих частей:

  1. Генерация отчета.

  2. Подготовка и отправка письма с прикрепленным отчетом.

  3. Настройка ежедневного запуска скрипта.

Генерация отчета

Создадим функцию для генерации отчета. В данном примере отчет будет просто текстовым файлом, содержащим текущую дату и некоторую информацию.

from datetime import datetime



def generate_report():

    report_content = f"Ежедневный отчет за {datetime.now().strftime('%Y-%m-%d')}nnДанные отчета..."

    report_path = 'daily_report.txt'

    with open(report_path, 'w') as file:

        file.write(report_content)

    return report_path

Отправка email

Далее, создадим функцию для отправки email с прикрепленным отчетом. Для этого будем использовать библиотеку smtplib и email.

import smtplib

import os

from email.message import EmailMessage



def send_email(report_path, recipient_email):

    sender_email = "[email protected]"

    sender_password = "your_password"



    msg = EmailMessage()

    msg['Subject'] = 'Ежедневный отчет'

    msg['From'] = sender_email

    msg['To'] = recipient_email

    msg.set_content("Пожалуйста, найдите прикрепленный ежедневный отчет.")



    with open(report_path, 'rb') as file:

        report_data = file.read()

        report_name = os.path.basename(report_path)

        msg.add_attachment(report_data, maintype='application', subtype='octet-stream', filename=report_name)



    with smtplib.SMTP_SSL('smtp.example.com', 465) as smtp:

        smtp.login(sender_email, sender_password)

        smtp.send_message(msg)

Основная функция и настройка расписания

Создадим основную функцию, которая будет генерировать отчет и отправлять его по электронной почте, а затем настроим ежедневный запуск этой функции с использованием библиотеки schedule.

import schedule

import time



def daily_task():

    report_path = generate_report()

    send_email(report_path, "[email protected]")



schedule.every().day.at("08:00").do(daily_task)



print("Запуск ежедневного задания для отправки отчетов по электронной почте.")



while True:

    schedule.run_pending()

    time.sleep(1)

Настройка SMTP сервера и учетных данных

Перед запуском скрипта, замените следующие параметры на ваши данные:
smtp.example.com на адрес SMTP-сервера вашего почтового провайдера.
[email protected] и your_password на ваш email и пароль.
[email protected] на email получателя.

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

Шаг 2: Настройка ежедневного запуска скрипта

Для автоматического запуска скрипта каждый день, можно использовать планировщик задач на вашем компьютере.

Linux (cron)

  1. Откройте crontab: crontab -e
  2. Добавьте задачу для ежедневного запуска скрипта в 8:00 утра:

cron

   0 8 * * * /usr/bin/python3 /path/to/your_script.py

Windows (Task Scheduler)

  1. Откройте «Планировщик задач» (Task Scheduler).

  2. Создайте новую задачу.

  3. Установите триггер на ежедневный запуск в 8:00 утра.

  4. В разделе «Действия» выберите «Запустить программу» и укажите путь к вашему скрипту и интерпретатору Python.

Таким образом, Python скрипт настроен для автоматической отправки отчетов каждый день в указанное время, что поможет упростить процесс и сэкономить время на рутинных задачах.
Если Вас интересуют подобные лайфхаки, рекомендую видеокурс Написание лайфхаков на Python.

Источник

НЕТ КОММЕНТАРИЕВ

Оставить комментарий