Найти в Дзене
Python Lab

🤖 Как Python сам отправляет отчёты на почту каждое утро — без вашего участия (Готовый скрипт + пошаговая настройка)

Представьте: вы просыпаетесь, завариваете кофе…
А в почте уже лежит свежий отчёт по продажам за вчерашний день. Никаких ручных обновлений. Никаких «ой, забыл отправить». Всё делает ваш персональный Python-бот.
Сегодня вы его создадите — за 15 минут. По данным опросов: Мы не будем хранить пароль в коде. Используем App Password (специальный одноразовый ключ от Google/Microsoft) — это безопасно и рекомендовано самими провайдерами. 🔒 Этот код работает только для отправки писем, не даёт доступ к аккаунту. (Аналогичная инструкция для Outlook — в конце статьи) Создайте файл send_report.py: import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.base import MIMEBase from email import encoders import os # === НАСТРОЙКИ (замените на свои) === SENDER_EMAIL = "ваш_email@gmail.com" APP_PASSWORD = "ваш_16_символьный_код" # ← сюда вставьте App Password! RECIPIENT_EMAIL = "начальник@company.com" REPORT_PATH = "итоговый_отчёт_январь.xlsx" # =
Оглавление

Представьте: вы просыпаетесь, завариваете кофе…
А в почте уже лежит
свежий отчёт по продажам за вчерашний день. Никаких ручных обновлений. Никаких «ой, забыл отправить».
Всё делает ваш персональный Python-бот.
Сегодня вы его создадите — за 15 минут.

💡 Почему это важно?

По данным опросов:

  • 68% аналитиков теряют время на напоминания о невысланных отчётах
  • 41% руководителей жалуются на задержки в данных
  • Вы можете стать тем, кто решает эту проблему — раз и навсегда

⚠️ Важно: безопасность!

Мы не будем хранить пароль в коде. Используем App Password (специальный одноразовый ключ от Google/Microsoft) — это безопасно и рекомендовано самими провайдерами.

🛠️ Что понадобится

  1. Готовый Excel-отчёт (из предыдущей статьи)
  2. Gmail или Outlook (поддерживаем оба)
  3. 5 минут на настройку App Password
  4. Библиотека smtplib (уже встроенная в Python!)

🔐 Шаг 1: Получите App Password (безопасный ключ)

Для Gmail:

  1. Включите двухэтапную аутентификацию
  2. Прокрутите вниз → «Пароли приложений»
  3. Выберите «Почта» → «Windows Computer» → Скопируйте 16-значный код
🔒 Этот код работает только для отправки писем, не даёт доступ к аккаунту.

(Аналогичная инструкция для Outlook — в конце статьи)

🧪 Шаг 2: Готовый скрипт отправки

Создайте файл send_report.py:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
import os
# === НАСТРОЙКИ (замените на свои) ===
SENDER_EMAIL = "ваш_email@gmail.com"
APP_PASSWORD = "ваш_16_символьный_код" # ← сюда вставьте App Password!
RECIPIENT_EMAIL = "начальник@company.com"
REPORT_PATH = "итоговый_отчёт_январь.xlsx"
# === ФОРМИРУЕМ ПИСЬМО ===
msg = MIMEMultipart()
msg["From"] = SENDER_EMAIL
msg["To"] = RECIPIENT_EMAIL
msg["Subject"] = "📊 Ежедневный отчёт по продажам — готов!"
# Текст письма
body = "Добрый день!\n\nВо вложении — актуальный отчёт по продажам.\nСформирован автоматически в " + \
"08:00 по Московскому времени.\n\nС уважением,\nВаш Python-ассистент"
msg.attach(MIMEText(body, "plain"))
# Прикрепляем Excel-файл
with open(REPORT_PATH, "rb") as attachment:
part = MIMEBase("application", "octet-stream")
part.set_payload(attachment.read())
encoders.encode_base64(part)
part.add_header(
"Content-Disposition",
f"attachment; filename= {os.path.basename(REPORT_PATH)}",
)
msg.attach(part)
# === ОТПРАВКА ===
try:
server = smtplib.SMTP("smtp.gmail.com", 587)
server.starttls()
server.login(SENDER_EMAIL, APP_PASSWORD)
text = msg.as_string()
server.sendmail(SENDER_EMAIL, RECIPIENT_EMAIL, text)
server.quit()
print("✅ Отчёт успешно отправлен!")
except Exception as e:

⏰ Шаг 3: Запускать каждый день в 8:00

На Windows:

  1. Откройте Планировщик заданий
  2. Создайте задачу → «Запуск программы»
  3. Укажите путь к python.exe и вашему скрипту
  4. Настройте расписание: ежедневно в 8:00

На Mac/Linux:

Добавьте в crontab:

0 8 * * * /usr/bin/python3 /путь/к/send_report.py

🎯 Теперь всё работает автоматически — даже если компьютер включён, а вы ещё спите!

📩 Поддержка Outlook?

Для Outlook замените:

  • SMTP-сервер: smtp-mail.outlook.com
  • Порт: 587
  • Остальное — аналогично

(Хотите подробную инструкцию для Outlook? Напишите в комментариях!)

💬 Ваша очередь!

👉 Попробуйте запустить скрипт и ответьте:

  • Отправилось ли письмо?
  • Кому бы вы хотели автоматически слать отчёты? (HR, бухгалтерия, клиент?)
  • Хотите, чтобы я показал, как добавить логирование ошибок или отправку в Telegram?

🔖 Сохраните и поделитесь!

Если вы устали быть «человеком-Excel» — эта статья вернёт вам часы жизни.
Автоматизация — это не для гениев. Это для тех, кто устал делать одно и то же.

👉 Подпишитесь, чтобы не пропустить!

🔍 SEO-ключи:

автоматическая отправка email python, python smtp gmail, как отправить excel на почту python, автоматизация отчётов python, планировщик задач python, app password google, smtplib tutorial, ежедневный отчёт python, python почтовый робот, автоматизация офиса