Оглавление:

Автоматическая отправка электронной почты с фотографией из пакетного файла с использованием старого рабочего стола и XP: 4 шага
Автоматическая отправка электронной почты с фотографией из пакетного файла с использованием старого рабочего стола и XP: 4 шага

Видео: Автоматическая отправка электронной почты с фотографией из пакетного файла с использованием старого рабочего стола и XP: 4 шага

Видео: Автоматическая отправка электронной почты с фотографией из пакетного файла с использованием старого рабочего стола и XP: 4 шага
Видео: CS50 2014 – 7-я неделя, продолжение 2024, Ноябрь
Anonim
Автоматическая отправка электронной почты с фотографией из пакетного файла с помощью старого рабочего стола и XP
Автоматическая отправка электронной почты с фотографией из пакетного файла с помощью старого рабочего стола и XP

Мне очень повезло, что из окна моего домашнего офиса открывается прекрасный вид. Когда меня нет, я хочу увидеть, чего мне не хватает, и я часто бываю в отъезде. Раньше у меня был собственный веб-сайт и домашняя метеостанция, которая загружала по ftp все данные о погоде и фотографии, сделанные из окна, однако поставщик услуг хостинга веб-сайта сделал обслуживание веб-сайта обременительным, поэтому через много лет я отказался Это. Я намеревался найти альтернативный способ смотреть в окно, например. бесплатные веб-сайты, блоги, электронная почта… но в большинстве случаев автоматическая передача по ftp этим потенциальным решениям была заблокирована. Дополнительная сложность заключается в том, что я часто бываю в отъезде на несколько месяцев, поэтому любое решение, которое будет выбрано, должно быть надежным.

Я был вдохновлен автором Instructables Olivi3r и его Instructable для создания камеры видеонаблюдения. Примерно через день заламывания рук у меня все заработало. Эта инструкция добавляет несколько ключевых деталей.

По сути, цель состоит в том, чтобы каждое утро делать снимки на веб-камеру, а затем отправлять их себе через Gmail в качестве вложения. Произойдет это следующим образом:

  • Электропитание переменного тока будет включено на 15 минут с помощью таймера 110 В переменного тока.
  • Компьютер включится
  • Программное обеспечение веб-камеры сделает снимок
  • Запустится командный файл Windows, который:
  • Запустите файл сценария PowerShell, который отправит электронное письмо и вложение.
  • Команда пакетного файла выключит компьютер
  • Питание переменного тока отключится

Предостережения: я не программист Windows - не спрашивайте меня, если это не работает. Я заставил этот подход работать, ныряя с маской и трубкой в Интернете, пока не нашел необходимое понимание отладки моих файлов. Во-вторых, я хотел, чтобы это работало на машине с Windows XP, я уверен, что есть лучшие решения на компьютере с Windows 10. На самом деле, на машине XP, вероятно, есть лучшие решения. Если найдете, приклейте их в комментарии. Выполнение этого подхода на ноутбуке может быть рискованным, потому что компьютер должен включаться при включении питания переменного тока. Редактор кода Instructables имеет неприятную привычку вставлять в код и другие HTML-теги (включая код Olivi3r). Думаю, я все это отредактировал, но будьте осторожны … Наконец, кнопка "Полный предварительный просмотр" Instructables даст мне только пустую белую страницу - так что WYSIWYG!

Сделаем это за 4 шага:

  1. Подготовьте компьютер
  2. Написать и отладить сценарий PowerShell
  3. Написать и отладить командный файл
  4. Завершите все, и Боб ваш дядя!

Шаг 1. Подготовьте компьютер

Сначала выкопайте из шкафа старый рабочий стол. Если он запущен на Windows XP (SP3) - заработает. Эта инструкция предназначена для XP, но подход должен быть таким же и для Windows 10. Запустите ее и вызовите BIOS (обычно F1, del или F2 во время процесса загрузки). Найдите что-то вроде «Управление питанием» и измените его на «Восстановление питания переменного тока - ВКЛ.». Это заставит компьютер загрузиться при включении питания переменного тока. Попробуй это.

Вам нужно будет отключить все пароли и войти в систему как администратор. Это связано с тем, что компьютер должен завершить процесс загрузки без присмотра. Перейдите в Панель управления, Учетные записи пользователей и при необходимости внесите соответствующие изменения.

Затем вам понадобится веб-камера и приложение для веб-камеры, которое сделает снимок и сохранит его. Пользуюсь Доргемом - просто и бесплатно. Настройте Доргема, чтобы сделать снимок и сохранить его на рабочем столе. Не меняйте имя изображения при создании нового изображения, вместо этого перезапишите последнее изображение. В этом примере изображение - Pic.jpg. Также обратите внимание, что я храню картинку на рабочем столе. Это важно, потому что путь к каталогу прост. Перетащите значок Dorgem в папку ЗАПУСК Windows.

А теперь пара хитрых моментов:

Вы должны изменить свою учетную запись Chrome, чтобы разрешить использование менее безопасных приложений. Погляди в глаза «Chrome менее безопасные приложения» и выбери первый вариант - вероятно, этот. Включите эту функцию. Вы получите уведомление по электронной почте, которое проинформирует вас об опасностях этой настройки. Возможно, вам не придется этого делать, если вы используете другой почтовый сервер, например Yahoo, AOL…

Затем вы должны включить выполнение сценариев PowerShell. Если вы используете Windows 10, это проще - щелкните значок Windows (нижний левый угол экрана), прокрутите список программ до Windows PowerShell, разверните, щелкните правой кнопкой мыши PowerShell и выберите «Запуск от имени администратора». Это откроет окно PowerShell. В XP процесс немного сложнее - используйте проводник, найдите каталог PowerShell (что-то вроде C: / Windows / system32 / WindowsPowerShell / v1.0), щелкните правой кнопкой мыши значок PowerShell и выберите «Закрепить в меню« Пуск »». Теперь у вас есть доступ к PowerShell, щелкнув значок «Пуск» (внизу слева) и щелкнув значок PowerShell. Щелкните значок PowerShell, в появившемся окне введите следующую команду:

дистанционно подписанная политика выполнения

Вам будет предложено подтвердить, набрав «y».

подтвердите, что вы успешно изменили политику выполнения, набрав:

казнь

Ok! Ваш компьютер готов.

Шаг 2: напишите и отладьте файл PowerShell

Скопируйте и вставьте этот текст в Блокнот:

$ EmailTo = "[email protected]"

$ EmailFrom = "[email protected]" $ Subject = "Просмотр" $ Body = "x" $ SMTPServer = "smtp.gmail.com" $ SMTPMessage = New-Object System. Net. Mail. MailMessage ($ EmailFrom, $ EmailTo, $ Subject, $ Body) $ attachment = New-Object System. Net. Mail. Attachment ("C: / Documents and Settings / Administrator / Desktop / pic.jpg") $ SMTPMessage. Attachments. Add ($ attachment) $ SMTPClient = новый объект Net. Mail. SmtpClient ($ SmtpServer, 587) $ SMTPClient. EnableSsl = $ True $ SMTPClient. Credentials = новый объект System. Net. NetworkCredential («идентификатор пользователя», «пароль»); $ SMTPClient. Send ($ SMTPMessage)

Сохраните этот файл на рабочем столе как «SendPic.ps1».

Внесите соответствующие изменения в; вы, идентификатор пользователя и пароль. Обычно ваш userID совпадает с вашим полным адресом Gmail.

Если вы не используете Gmail, вам необходимо выполнить рутинг в Интернете, чтобы найти порт, связанный с вашим сервером Smtp, и изменить "587" на соответствующий порт, например. smtp.mail.yahoo.com и порт 465.

Вместо использования Блокнота доступен редактор PowerShell.

Теперь о большом - щелкните правой кнопкой мыши файл SendPic PowerShell и выберите «Запускать с помощью PowerShell». Если это сработает, вы получите письмо по электронной почте через несколько секунд. Если нет, то вам нужно начать отладку.

Отладка

Создайте на рабочем столе новый файл PowerShell с именем test1, который отправляет электронное письмо без вложения:

$ EmailTo = "[email protected]"

$ EmailFrom = "[email protected]" $ Subject = "test" $ Body = "x" $ SMTPServer = "smtp.gmail.com" $ SMTPMessage = New-Object System. Net. Mail. MailMessage ($ EmailFrom, $ EmailTo, $ Subject, $ Body) $ SMTPClient = New-Object Net. Mail. SmtpClient ($ SmtpServer, 587) $ SMTPClient. EnableSsl = $ True $ SMTPClient. Credentials = New-Object System. Net. NetworkCredential («userID», "пароль"); $ SMTPClient. Send ($ SMTPMessage)

Откройте файл с помощью редактора PowerShell, щелкнув файл правой кнопкой мыши и выбрав «Изменить». Запустив из редактора, мы можем прочитать сообщения об ошибках, которые появляются при двойном щелчке по файлу.

компакт-диск. / рабочий стол

. / test1.ps1

Если это не удается, это, вероятно, связано с проблемой каталога. Убедитесь, что PowerShell указывает на каталог рабочего стола. Командная строка будет выглядеть примерно так:

PS C: / Пользователи / вы / Рабочий стол>

В противном случае вам придется запомнить все свои старые команды DOS; cd, dir,. / и т. д., чтобы PowerShell указывал на рабочий стол. Попробуйте еще раз, если это не сработает, прочтите сообщение об ошибке, чтобы помочь в обнаружении проблемы.

. / test1

Шаг 3: напишите и отладьте пакетный файл

Откройте Блокнот и скопируйте следующий текст:

PING localhost -n 180> NUL

powershell.exe. / SendPic.ps1 выключение -s -t 100

Оператор PING - это настоящий хакер, который 180 раз в секунду отправляет запрос на связь. Задержка должна быть достаточно большой, чтобы компьютер загрузился, установил подключение к Интернету и сделал снимок с веб-камеры. Новые версии Windows поддерживают TIMEOUT - намного чище.

Следующая инструкция выполняет файл PowerShell, который отправляет электронное письмо с прикрепленной фотографией.

Последнее утверждение заставляет компьютер отключиться после 100-секундной задержки. Это время выбрано как достаточное для отправки электронного письма.

Сохраните файл на рабочем столе как SendPic.bat (а не. TXT, как это произойдет, если вы не добавите расширение к имени файла. Перетащите файл в папку ЗАПУСК Windows.

Дважды щелкните значок командного файла. Вы должны получить электронное письмо. Ого! Слишком легко. Ага, многое может пойти не так.

Отладка

Проблема с отладкой как этого файла.bat, так и предыдущего файла.ps1 заключается в том, что ошибки мигают слишком быстро, чтобы их можно было прочитать. Вы можете замедлить это с помощью:

ПАУЗА

PING localhost -n 180> NUL PAUSE powershell.exe. / SendPic.ps1 PAUSE shutdown -s -t 100 PAUSE

PAUSE будет ждать, пока вы нажмете клавишу ENTER. Прочтите сообщение об ошибке. Опять же, это, вероятно, проблема с каталогом. После устранения проблемы удалите операторы PAUSE, иначе программа зависнет.

Если вы хотите завершить работу командного файла во время его выполнения, щелкните в открытом окне cmd и введите ^ C (Ctrl C).

Шаг 4: завершение

Завершение
Завершение

Старые рабочие столы под управлением Windows не славятся своей надежностью. Что вы делаете в первую очередь, когда ваш компьютер собирает вещи? Отключите питание! Вот что мы собираемся делать. Найдите таймер переменного тока в Walmart или Amazon. Самые дешевые - механические (менее 10 долларов), более дорогие - электронные (более 20 долларов). Запрограммируйте переключатель на включение, например, в 8 часов утра и выключение через 15 минут. Подключите компьютер к розетке с таймером.

Когда переключатель таймера подает питание на ваш компьютер, инициируется следующая последовательность событий:

  1. BIOS определяет питание переменного тока, компьютер загружается
  2. Windows запускается (без входа в систему с паролем)
  3. Программа веб-камеры запускается и делает снимок
  4. Запускается выполнение командного файла

    1. Задержка завершения процесса загрузки, захвата изображения и входа в Интернет
    2. Запустите файл PowerShell, чтобы отправить электронное письмо с вложением
    3. Задержка завершения электронного письма
    4. Выключить компьютер

После этого переключатель таймера отключит питание компьютера. Это ключ к надежной работе без присмотра. Я пережил периодические сбои жесткого диска, зависания программ и другие остановки компьютера, но когда система выходит из строя, она возвращается после отключения питания.

Этот подход легко адаптируется к мониторингу безопасности, например, с помощью iSpy можно захватить короткий видеоклип при обнаружении движения и отправить электронное письмо с вложенным видео. Фактически, концепция может быть расширена для отправки оповещения по электронной почте при обнаружении любого события и с добавлением Arduino и физических датчиков, доступных в этой вселенной - нет предела!

Рекомендуемые: