Съдържание:

Автоматично изпращане на имейл със снимка от пакетния файл с помощта на стария работен плот и XP: 4 стъпки
Автоматично изпращане на имейл със снимка от пакетния файл с помощта на стария работен плот и XP: 4 стъпки

Видео: Автоматично изпращане на имейл със снимка от пакетния файл с помощта на стария работен плот и XP: 4 стъпки

Видео: Автоматично изпращане на имейл със снимка от пакетния файл с помощта на стария работен плот и XP: 4 стъпки
Видео: CS50 2015 - Week 6 2024, Юли
Anonim
Автоматично изпращане на имейл със снимка от групов файл, използвайки Стария работен плот и XP
Автоматично изпращане на имейл със снимка от групов файл, използвайки Стария работен плот и XP

Имам голям късмет да имам страхотна гледка от прозореца на домашния си офис. Когато съм далеч, искам да видя какво ми липсва и често съм далеч. Някога имах собствен уебсайт и домашна метеорологична станция, която да качва чрез ftp всички метеорологични данни и снимка, направена през прозореца, но доставчикът на хост на уебсайта направи поддръжката на уебсайта обременяваща, така че след много години отпаднах то. Възнамерявах да намеря заместващ метод за гледане през прозореца напр. безплатни уебсайтове, блогове, имейл … но в повечето случаи автоматичните ftp трансфери към тези потенциални решения бяха блокирани. Допълнително усложнение е, че често съм отсъствал с месеци наведнъж, така че каквото и да е решение трябва да бъде надеждно.

Бях вдъхновен от автора на Instructables Olivi3r и неговия Instructable за създаване на охранителна камера. След около един ден ръчно изцеждане, го накарах да работи. Тази инструкция добавя няколко ключови подробности.

По принцип целта е да направите снимка с уеб камерата всяка сутрин и след това да изпратите снимката до себе си чрез gmail като прикачен файл. Това ще се случи, както следва:

  • Захранването с променлив ток ще бъде включено за 15 минути с помощта на таймер 110VAC
  • Компютърът ще се включи
  • Софтуерът за уеб камера ще заснеме снимка
  • Пакетният файл на Windows ще се изпълни, който ще:
  • Изпълнете скриптов файл PowerShell, който ще изпрати имейла и прикачения файл
  • Командата за групов файл ще изключи компютъра
  • Захранването с променлив ток ще се изключи

Предупреждения: Аз не съм програмист на Windows - не ме питайте дали не работи. Получих този подход за работа, като шнорхелирах през Интернет, докато не намерих необходимата информация за отстраняване на грешки в моите файлове. Второ, исках това да работи на машина с Windows XP, сигурен съм, че има по -добри решения на компютър с Windows 10. Всъщност на XP машина вероятно има по -добри решения. Ако намерите такива, поставете ги в коментарите. Изпълнението на този подход на лаптоп може да бъде лошо, защото компютърът трябва да се включи при включване на променливотоковото захранване. Редакторът на кодове на Instructables има лош навик да вмъква и други HTML тагове в кода (включително кода на Olivi3r). Мисля, че съм редактирал всичко това, но внимавайте.. И накрая, бутонът „Пълна визуализация“на Instructables ще ми даде само една празна бяла страница - така WYSIWYG!

Ще направим това в 4 стъпки:

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

Стъпка 1: Подгответе компютъра

Първо изкопайте стар шкаф от килера. Ако работи под Windows XP (SP3) - ще работи. Този Instructable е предназначен за XP, но подходът трябва да е същият за Windows 10. Задействайте го и извикайте BIOS (обикновено F1, del или F2 по време на процеса на зареждане). Намерете нещо като „Управление на захранването“и го променете на „Възстановяване на променливотоково захранване - ВКЛ.“. Това ще накара компютъра да се зареди при включване на променливотоковото захранване. Тествайте го.

Ще трябва да деактивирате всички пароли и да влезете като администратор. Това е така, защото компютърът трябва да завърши процеса на зареждане без надзор. Отидете на Контролен панел, Потребителски акаунти и направете съответните промени, ако е необходимо.

След това се нуждаете от уеб камера и приложение за уеб камера, които ще заснемат снимка и ще я съхраняват. Използвам Dorgem - просто и безплатно. Настройте Dorgem да прави снимка и да я съхранява на работния плот. Не променяйте името на картината, когато правите нова снимка, вместо това презаписвайте последната снимка. В този пример картината е Pic.jpg. Също така имайте предвид, че съхранявам картината на работния плот. Това е важно, защото пътят на директорията е лесен. Плъзнете и пуснете иконата Dorgem в папката Windows STARTUP.

Сега - няколко сложни бита:

Трябва да промените профила си в Chrome, за да разрешите по -малко сигурни приложения. Потърсете в goggle „хромирани по -малко сигурни приложения“и изберете първата опция - вероятно тази. Включете тази функция. Ще получите предупреждение по имейл, което ви информира за опасностите от тази настройка. Може да не се наложи да правите това, ако използвате друг имейл сървър, напр. Yahoo, AOL …

След това трябва да разрешите изпълнението на скриптове на PowerShell. Ако използвате Windows 10, това е по -лесно - щракнете върху иконата на Windows (долния ляв ъгъл на екрана), превъртете надолу списъка с програми до Windows PowerShell, разгънете, щракнете с десния бутон върху PowerShell и изберете „Изпълни като администратор“. Това ще отвори прозореца на PowerShell. В XP процесът е малко по -сложен - използвайте File Explorer, намерете директорията PowerShell (нещо като C: / Windows / system32 / WindowsPowerShell / v1.0), щракнете с десния бутон върху иконата PowerShell и изберете „Закачване към менюто за стартиране“. Сега имате достъп до PowerShell, като щракнете върху иконата Старт (долу вляво) и щракнете върху иконата PowerShell. Щракнете върху иконата на PowerShell, в изскачащия прозорец въведете следната команда:

set-executionpolicy Remotesigned

Ще бъдете помолени да потвърдите, като напишете „y“.

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

изпълнителна политика

Добре! Вашият компютър е готов.

Стъпка 2: Напишете и отстранете грешки в PowerShell файл

Копирайте и поставете този текст в Notepad:

$ EmailTo = "[email protected]"

$ EmailFrom = "[email protected]" $ Subject = "Преглед" $ Body = "x" $ SMTPServer = "smtp.gmail.com" $ SMTPMessage = Нов обект 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 = New-Object Net. Mail. SmtpClient ($ SmtpServer, 587) $ SMTPClient. EnableSsl = $ True $ SMTPClient. Credentials = New-Object System. Net. NetworkCredential ("userID", "парола"); $ SMTPClient. Send ($ SMTPMessage)

Запазете този файл на работния плот като „SendPic.ps1“.

Направете съответните промени в; вие, потребителски идентификатор и парола. Обикновено потребителският ви идентификатор е същият като пълния ви адрес в Gmail.

Ако не използвате Gmail, тогава трябва да се изкорените в Интернет, за да намерите порта, свързан с вашия Smtp сървър, и да промените „587“на съответния порт, напр. smtp.mail.yahoo.com и портът е 465.

Вместо да използвате Notepad, е наличен редакторът PowerShell.

Сега за големия - щракнете с десния бутон върху SendPic PowerShell файла и изберете „Run with PowerShell“. Ако работи, ще получите и имейл след няколко секунди. Ако това не стане, трябва да започнете отстраняване на грешки.

Отстраняване на грешки

Създайте нов файл PowerShell на вашия работен плот с име test1, който изпраща имейл без прикачен файл:

$ EmailTo = "[email protected]"

$ EmailFrom = "[email protected]" $ Subject = "тест" $ Body = "x" $ SMTPServer = "smtp.gmail.com" $ SMTPMessage = Нов обект 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, като щракнете с десния бутон върху файла и изберете „Редактиране“. Като стартираме от редактора, можем да прочетем съобщенията за грешки, които мигат, когато щракнете двукратно върху файла.

cd. / desktop

. / test1.ps1

Ако това не успее, вероятно се дължи на проблем с директория. Уверете се, че PowerShell е насочен към директорията на работния плот. Командният ред ще изглежда така:

PS C: / Users / you / Desktop>

Ако това не стане, ще трябва да запомните всичките си стари DOS команди; cd, dir,. / и т.н., за да насочите PowerShell към работния плот. Опитайте отново, ако не работи, прочетете съобщението за грешка, за да помогнете за откриването на проблема

. / test1

Стъпка 3: Напишете и отстранете грешки в групов файл

Отворете Notepad и копирайте следния текст:

PING localhost -n 180> NUL

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

Изявлението PING е истински хак, който изпраща заявка за комуникация на всяка секунда 180 пъти. Забавянето трябва да е достатъчно дълго, за да може компютърът да се зареди, да установи интернет връзка и да направи снимка от уеб камера. По -новите версии на Windows поддържат TIMEOUT - много по -чисти.

Следващото изявление изпълнява файла PowerShell, който изпраща имейла с прикачена снимка.

Последното изявление кара компютъра да се изключи след 100 секундно закъснение. Този час е избран като достатъчен за изпращане на имейла.

Запишете файла на вашия работен плот като SendPic.bat (не. TXT както ще се случи, ако не добавите разширението към името на файла. Плъзнете и пуснете файла в папката Windows STARTUP.

Щракнете двукратно върху иконата на пакетния файл. Трябва да получите имейла. Уау! Твърде лесно. Да, добре, много може да се обърка.

Отстраняване на грешки

Проблемът с отстраняването на грешки както в този.bat файл, така и в предишния.ps1 файл е, че грешките мигат твърде бързо за четене. Можете да го забавите с:

ПАУЗА

PING localhost -n 180> NUL PAUSE powershell.exe. / SendPic.ps1 PAUSE изключване -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 и физическите сензори, налични в тази вселена - небето е границата!

Препоръчано: