Как получать уведомления по электронной почте при входе в Windows
Краткое содержание
- Цель: получать email при любом входе в систему на компьютере с Windows.
- Инструменты: Планировщик заданий Windows + sendemail.exe (командная утилита для отправки почты).
- Главные шаги: установить sendemail, создать задачу с триггером «At log on», настроить действие с аргументами SMTP, протестировать и обезопасить учётные данные.
Почему это полезно
Если вы администрируете сервер или хотите оперативно узнавать о несанкционированном доступе к рабочей станции, автоматические уведомления по электронной почте дают быстрый сигнал и позволяют оперативно реагировать.
Подход и ключевые термины
- SMTP — протокол для отправки почты. Требует сервера и часто аутентификации.
- sendemail.exe — лёгкая командная утилита для отправки почты с поддержкой аутентификации и TLS.
SendEmail vs. встроенная функция Планировщика
В Планировщике заданий есть действие «Send an e-mail», однако оно не работает с SMTP-серверами, требующими отдельной аутентификации (обычно данные для отправки подставляются от имени текущего Windows‑пользователя). Это подходит только для локальных SMTP‑серверов без аутентификации.
sendemail.exe позволяет передать параметры SMTP, логин и пароль прямо в командной строке и поддерживает TLS, поэтому он пригоден для использования с Gmail, корпоративными SMTP‑сервисами и другими поставщиками, требующими аутентификацию.
Important: если вы используете Gmail и у вас включена двухфакторная аутентификация, создайте app‑пароль и используйте его вместо основного пароля. Если 2FA отключена, возможно потребуется разрешить доступ «менее защищённых приложений» (не рекомендуется).
Подготовка
- Скачайте sendemail.exe и поместите в безопасную папку, доступную системе (например, C:\Tools\sendemail\sendemail.exe).
- Убедитесь, что у вас есть SMTP‑данные: адрес сервера, порт (например, smtp.gmail.com:587), логин и пароль или app‑пароль.
- Решите, где хранить учётные данные (см. раздел «Безопасность» ниже).

Создание задачи в Планировщике заданий — пошагово
- Откройте Планировщик заданий: введите «Task Scheduler» в меню Пуск и нажмите Enter.

- В боковой панели нажмите «Create Task» (Создать задачу).

- На вкладке «General» укажите имя и описание задачи. Рекомендуется выбрать «Run whether user is logged on or not» (Выполнять независимо от входа пользователя), чтобы задача работала под учётной записью даже если никто не вошёл в систему.

- На вкладке «Triggers» создайте новый триггер: Begin the task: At log on → Any user (Начать задачу: При входе в систему → Любой пользователь).

- На вкладке «Actions» создайте новое действие: Action: Start a program (Запустить программу). В поле Program/script укажите путь к sendemail.exe. В поле Add arguments вставьте команду вида:
-f from@gmail.com -t to@gmail.com -u "Someone Logged Into Your Computer" -m "Someone just logged into your computer!" -s smtp.gmail.com:587 -xu from@gmail.com -xp password -o tls=yesПояснения:
- -f — адрес отправителя;
- -t — получатель;
- -u — тема письма;
- -m — тело письма;
- -s — SMTP-сервер и порт;
- -xu / -xp — логин и пароль SMTP;
- -o tls=yes — включить TLS.

Note: если ваш SMTP не требует аутентификации и доступен локально, можно оставить действие «Send an e‑mail», но для внешних провайдеров обычно нужен sendemail или скрипт.
- На вкладке «Conditions» снимите флажок «Start the task only if the computer is on AC power» (Запускать только при подключенном питании), если вы хотите получать уведомления с ноутбука на батарее.

- Нажмите OK и введите учётные данные, если потребуется, чтобы задача могла выполняться от указанной учётной записи.

После сохранения тестируйте: выйдите и войдите в систему или имитируйте событие входа, чтобы убедиться, что письмо отправляется.
Тестирование и приёмка
Критерии приёмки:
- При входе любого пользователя в систему отправляется одно письмо на указанный адрес.
- Тема и тело письма соответствуют заданным в аргументах.
- Письмо приходит в разумное время (обычно в течение нескольких минут).
- Задача работает на батарее (если это требовалось).
Тесты:
- Выйдите из текущей сессии и войдите снова.
- Просмотрите журнал событий Планировщика и Windows Event Viewer для ошибок.
- Запустите sendemail.exe вручную с теми же аргументами от той же учётной записи, чтобы проверить доступность SMTP.
Безопасность и конфиденциальность
- Не храните основной пароль в открытом виде в системе. Используйте app‑пароль (Gmail) или создайте отдельную учётную запись с ограниченными правами для отправки уведомлений.
- Ограничьте доступ к папке с sendemail.exe и к самой задаче (параметры безопасности задачи в Планировщике).
- Если требования безопасности строгие, рассмотрите использование локального SMTP‑реле, которое принимает запросы без пароля из локальной сети и пересылает их внешнему серверу.
Privacy note: уведомления содержат информацию о входе в систему (факт доступа). Подумайте, нужно ли шифровать тело письма или отправлять уведомления только на внутренний адрес.
Альтернативные подходы
- PowerShell: написать скрипт, который использует .NET SMTP‑клиент или Send-MailMessage (устаревающий).
- Blat или другие консольные утилиты для отправки почты.
- Настроить аудит входов в Event Log и использовать централизованный сбор событий (SIEM, Windows Event Forwarding) для оповещений — лучшая практика в больших инфраструктурах.
Когда этот метод не подойдёт:
- Если политика компании запрещает хранить пароли в задачах.
- Если нужна продвинутая аналитика доступа (тогда нужен SIEM).
Шаблон команды (cheat sheet)
- Простой пример (Gmail + app‑пароль):
C:\Tools\sendemail\sendemail.exe -f myalert@example.com -t admin@example.com -u "Login alert" -m "User logged in on HOSTNAME" -s smtp.gmail.com:587 -xu myalert@example.com -xp APP_PASSWORD -o tls=yes- Для локального SMTP без аутентификации просто укажите -s localhost:25 и опустите -xu/-xp.
Тепловая карта проблем и рекомендации
- Письма не приходят: проверьте доступность SMTP (telnet smtp:port), логин/пароль, блокировку портов на фаерволе.
- Ошибка аутентификации: используйте app‑пароль или проверьте требования SMTP к шифрованию.
- Задача не запускается: проверьте права учётной записи и опцию «Run whether user is logged on or not».
Роль‑базовый чеклист
- Администратор: установить sendemail.exe, создать задачу, обеспечить защиту учётных данных, настроить мониторинг.
- Пользователь безопасности: проверить соответствие политики компании, аудит и уведомления в SIEM.
- Обычный пользователь: при получении уведомления — проверить неавторизованные входы и при необходимости сменить пароль.
Мини‑методология тестирования (быстрая)
- Настроить задачу в тестовой среде.
- Выполнить ручной запуск sendemail.exe с теми же аргументами.
- Провести 3 циклических теста входа/выхода и проверить доставку.
- Просмотреть журнал задач и системный журнал на предмет ошибок.
FAQ
Q: Будет ли это работать c Gmail?
A: Да, при использовании smtp.gmail.com:587 и TLS. При включённой 2FA используйте app‑пароль. При стандартной авторизации может потребоваться разрешение для сторонних приложений.
Q: Безопасно ли хранить пароль в аргументах задачи?
A: Хранение открытого пароля повышает риск. Лучше использовать app‑пароль, ограниченную учётную запись или локальное SMTP‑реле. Ограничьте доступ к файлам и задаче.
Итог
Настройка уведомлений по email при входе в Windows — простой способ отслеживать доступы к отдельным компьютерам и серверам. Для надёжной работы используйте sendemail.exe или безопасный скрипт с поддержкой TLS и аутентификации, протестируйте поведение на батарее и примените меры по защите учётных данных.
Summary:
- Установите sendemail.exe;
- Создайте задачу с триггером «При входе»;
- Используйте безопасную форму хранения паролей;
- Тестируйте и следите за журналами.
Похожие материалы
Как исправить видео в Skype: 8 шагов
Sticky header в React — как сделать
Межстрочный и абзацный интервал в Word — руководство
Организация приватных сохранений в Instagram
Родительский контроль Peacock — настройка и советы