Spisu treści:

Automatycznie wysyłaj e-mail ze zdjęciem z pliku wsadowego przy użyciu starego pulpitu i XP: 4 kroki
Automatycznie wysyłaj e-mail ze zdjęciem z pliku wsadowego przy użyciu starego pulpitu i XP: 4 kroki

Wideo: Automatycznie wysyłaj e-mail ze zdjęciem z pliku wsadowego przy użyciu starego pulpitu i XP: 4 kroki

Wideo: Automatycznie wysyłaj e-mail ze zdjęciem z pliku wsadowego przy użyciu starego pulpitu i XP: 4 kroki
Wideo: Odcinek 10 - ten o narzędziach i programach, które każdy grafik znać powinien 2024, Listopad
Anonim
Automatycznie wysyłaj e-mail ze zdjęciem z pliku wsadowego przy użyciu starego pulpitu i XP
Automatycznie wysyłaj e-mail ze zdjęciem z pliku wsadowego przy użyciu starego pulpitu i XP

Jestem bardzo szczęśliwy, że mam wspaniały widok z okna mojego domowego biura. Kiedy mnie nie ma, chcę zobaczyć, czego mi brakuje i często mnie nie ma. Kiedyś miałem własną stronę internetową i domową stację pogodową, która przesyłała przez ftp wszystkie dane pogodowe i zdjęcie z okna, jednak dostawca hostingu strony sprawił, że utrzymanie witryny było uciążliwe, więc po wielu latach zrezygnowałem to. Chciałem znaleźć zastępczy sposób patrzenia przez okno, m.in. darmowe strony internetowe, blogi, poczta e-mail… ale w większości przypadków automatyczne transfery ftp do tych potencjalnych rozwiązań były blokowane. Dodatkową komplikacją jest to, że często wyjeżdżam na kilka miesięcy, więc jakiekolwiek rozwiązanie, które zostanie ustalone, musi być niezawodne.

Zainspirował mnie autor Instructables Olivi3r i jego Instructable do stworzenia kamery bezpieczeństwa. Po mniej więcej dniu załamywania rąk, zacząłem działać. Ta instrukcja dodaje kilka kluczowych szczegółów.

Zasadniczo celem jest zrobienie zdjęcia kamerą internetową każdego ranka, a następnie przesłanie zdjęcia do siebie przez Gmaila jako załącznik. Stanie się to w następujący sposób:

  • Zasilanie prądem zmiennym zostanie włączone na 15 minut przy użyciu timera 110VAC
  • Komputer się włączy
  • Oprogramowanie kamery internetowej zrobi zdjęcie
  • Zostanie uruchomiony plik wsadowy systemu Windows, który:
  • Uruchom plik skryptu PowerShell, który wyśle wiadomość e-mail i załącznik
  • Polecenie pliku wsadowego wyłączy komputer
  • Zasilanie prądem zmiennym wyłączy się

Zastrzeżenia: Nie jestem programistą Windows - nie pytaj mnie, czy to nie działa. Wprowadziłem to podejście do działania, przeczesując Internet, dopóki nie znalazłem potrzebnego wglądu w debugowanie moich plików. Po drugie, chciałem, aby to działało na komputerze z systemem Windows XP, jestem pewien, że są lepsze rozwiązania na komputerze z systemem Windows 10. W rzeczywistości są prawdopodobnie lepsze rozwiązania na maszynie XP. Jeśli znajdziesz jakieś, wklej je w komentarzach. Uruchamianie tego podejścia na laptopie może być ryzykowne, ponieważ komputer musi się włączać, gdy włączone jest zasilanie prądem zmiennym. Edytor kodu Instructables ma paskudny zwyczaj wstawiania i innych znaczników HTML do kodu (w tym kodu Olivi3r). Myślę, że edytowałem je wszystkie, ale uważaj. Na koniec przycisk „Pełny podgląd” Instructables da mi tylko pustą białą stronę - więc WYSIWYG!

Zrobimy to w 4 krokach:

  1. Przygotuj komputer
  2. Napisz i debuguj skrypt PowerShell
  3. Napisz i debuguj plik wsadowy
  4. Zapakuj to wszystko, a Bob będzie twoim wujkiem!

Krok 1: Przygotuj komputer

Najpierw wykop stary pulpit z szafy. Jeśli działa w systemie Windows XP (SP3) - będzie działać. Ten Instructable jest przeznaczony dla XP, ale podejście powinno być takie samo w systemie Windows 10. Uruchom go i wywołaj BIOS (zwykle F1, del lub F2 podczas procesu uruchamiania). Znajdź coś takiego jak „Zarządzanie energią” i zmień je na „Odzyskiwanie zasilania prądem przemiennym - WŁ.”. Spowoduje to uruchomienie komputera po włączeniu zasilania prądem zmiennym. Sprawdź to.

Będziesz musiał wyłączyć wszystkie hasła i zalogować się jako administrator. Dzieje się tak, ponieważ komputer musi zakończyć proces rozruchu bez nadzoru. Przejdź do Panelu sterowania, Konta użytkowników i wprowadź odpowiednie zmiany, jeśli to konieczne.

Następnie potrzebujesz kamery internetowej i aplikacji do obsługi kamery internetowej, która zrobi zdjęcie i przechowa je. Używam Dorgema - prostego i darmowego. Skonfiguruj Dorgema, aby zrobić zdjęcie i zapisać je na pulpicie. Nie zmieniaj nazwy zdjęcia podczas robienia nowego zdjęcia, zamiast tego nadpisz ostatnie zdjęcie. W tym przykładzie obraz to Pic.jpg. Pamiętaj też, że przechowuję zdjęcie na pulpicie. Jest to ważne, ponieważ ścieżka do katalogu jest łatwa. Przeciągnij i upuść ikonę Dorgem do folderu STARTUP systemu Windows.

Teraz - kilka podchwytliwych bitów:

Musisz zmienić swoje konto Chrome, aby zezwalać na mniej bezpieczne aplikacje. Wygonij „mniej bezpieczne aplikacje chrome” i wybierz pierwszą opcję – prawdopodobnie tę. Włącz tę funkcję. Otrzymasz powiadomienie e-mail, które poinformuje Cię o niebezpieczeństwach związanych z tym ustawieniem. Być może nie będziesz musiał tego robić, jeśli korzystasz z innego serwera poczty e-mail, np. Yahoo, AOL…

Następnie musisz włączyć wykonywanie skryptów PowerShell. Jeśli używasz systemu Windows 10, jest to łatwiejsze - kliknij ikonę Windows (lewy dolny róg ekranu), przewiń listę programów do Windows PowerShell, rozwiń, kliknij prawym przyciskiem myszy PowerShell i wybierz "Uruchom jako administrator". Spowoduje to otwarcie okna PowerShell. W XP proces jest nieco bardziej skomplikowany - użyj Eksploratora plików, znajdź katalog PowerShell (coś w rodzaju C:\Windows\system32\WindowsPowerShell\v1.0), kliknij prawym przyciskiem myszy ikonę PowerShell i wybierz "Przypnij do menu startowego". Teraz masz dostęp do PowerShell, klikając ikonę Start (w lewym dolnym rogu) i klikając ikonę PowerShell. Kliknij ikonę PowerShell, w wyskakującym oknie wpisz następujące polecenie:

set-executionpolicy remotesigned

Zostaniesz poproszony o potwierdzenie, wpisując „y”.

potwierdź, że pomyślnie zmieniłeś zasady wykonywania, wpisując:

polityka egzekucyjna

Ok! Twój komputer jest gotowy.

Krok 2: Napisz i debuguj plik PowerShell

Skopiuj i wklej ten tekst do Notatnika:

$EmailTo = "[email protected]"

$EmailFrom = "[email protected]" $Subject = "Widok" $Body = "x" $SMTPServer = "smtp.gmail.com" $SMTPMessage = Nowy obiekt System. Net. Mail. MailMessage($EmailFrom, $ EmailTo, $Subject, $Body) $attachment = Nowy obiekt System. Net. Mail. Attachment("C:\Documents and Settings\Administrator\Desktop\pic.jpg") $SMTPMessage. Attachments. Add($attachment) $ SMTPClient = Nowy obiekt Net. Mail. SmtpClient($SmtpServer, 587) $SMTPClient. EnableSsl = $True $SMTPClient. Credentials = Nowy obiekt System. Net. NetworkCredential("identyfikator użytkownika", "hasło"); $ SMTPClient. Send ($ SMTPMessage)

Zapisz ten plik na pulpicie jako „SendPic.ps1”.

Wprowadź odpowiednie zmiany; ty, identyfikator użytkownika i hasło. Zwykle identyfikator użytkownika jest taki sam, jak pełny adres Gmaila.

Jeśli nie korzystasz z Gmaila, musisz zakorzenić się w Internecie, aby znaleźć port powiązany z serwerem SMTP i zmienić „587” na odpowiedni port, np. smtp.mail.yahoo.com, a port to 465.

Zamiast korzystać z Notatnika, dostępny jest edytor PowerShell.

Teraz dla dużego - kliknij prawym przyciskiem myszy plik SendPic PowerShell i wybierz "Uruchom z PowerShell". Jeśli to zadziała, otrzymasz i wyślesz e-mail w ciągu kilku sekund. Jeśli tak się nie stanie, musisz rozpocząć debugowanie.

Debugowanie

Utwórz nowy plik PowerShell na pulpicie o nazwie test1, który wysyła wiadomość e-mail bez załącznika:

$EmailTo = "[email protected]"

$EmailFrom = "[email protected]" $Subject = "test" $Body = "x" $SMTPServer = "smtp.gmail.com" $SMTPMessage = Nowy obiekt System. Net. Mail. MailMessage($EmailFrom, $ EmailTo, $Subject, $Body) $SMTPClient = Nowy obiekt Net. Mail. SmtpClient($SmtpServer, 587) $SMTPClient. EnableSsl = $True $SMTPClient. Credentials = Nowy obiekt System. Net. NetworkCredential("userID", "hasło"); $ SMTPClient. Send ($ SMTPMessage)

Otwórz plik za pomocą edytora PowerShell, klikając plik prawym przyciskiem myszy i wybierając „Edytuj”. Uruchamiając z edytora, możemy odczytać komunikaty o błędach, które migają po dwukrotnym kliknięciu pliku.

cd.\pulpit

.\test1.ps1

Jeśli to się nie powiedzie, prawdopodobnie jest to spowodowane problemem z katalogiem. Upewnij się, że program PowerShell jest wskazywany na katalog pulpitu. Wiersz polecenia będzie wyglądał mniej więcej tak:

PS C:\Użytkownicy\ty\Pulpit>

Jeśli tak się nie stanie, będziesz musiał zapamiętać wszystkie swoje stare polecenia DOS; cd, dir,.\, etc, aby PowerShell wskazywał pulpit. Spróbuj ponownie, jeśli to nie zadziała, przeczytaj komunikat o błędzie, aby pomóc w wykryciu problemu

.\test1

Krok 3: Napisz i debuguj plik wsadowy

Otwórz Notatnik i skopiuj następujący tekst:

PING localhost -n 180 >NUL

powershell.exe.\SendPic.ps1 zamknięcie -s -t 100

Instrukcja PING to prawdziwy hack, który wysyła żądanie komunikacji co sekundę 180 razy. Opóźnienie powinno być wystarczająco długie, aby komputer mógł się uruchomić, nawiązać połączenie z Internetem i zrobić zdjęcie kamerą internetową. Nowsze wersje systemu Windows obsługują TIMEOUT - znacznie czystszy.

Następna instrukcja wykonuje plik PowerShell, który wysyła wiadomość e-mail z załączonym zdjęciem.

Ostateczne stwierdzenie powoduje wyłączenie komputera po 100 sekundowym opóźnieniu. Ten czas jest wybrany jako wystarczający do wysłania e-maila.

Zapisz plik na pulpicie jako SendPic.bat (nie. TXT, jak to się stanie, jeśli nie dodasz rozszerzenia do nazwy pliku. Przeciągnij i upuść plik do folderu STARTUP systemu Windows.

Kliknij dwukrotnie ikonę pliku wsadowego. Powinieneś otrzymać e-mail. Łał! Zbyt łatwe. Tak, wiele może pójść nie tak.

Debugowanie

Problem z debugowaniem zarówno tego pliku.bat, jak i poprzedniego pliku.ps1 polega na tym, że błędy migają zbyt szybko, aby można je było odczytać. Możesz to spowolnić za pomocą:

PAUZA

PING localhost -n 180 > NUL PAUZA powershell.exe.\SendPic.ps1 PAUZA zamknięcie -s -t 100 PAUZA

PAUSE poczeka na naciśnięcie klawisza ENTER. Przeczytaj komunikat o błędzie. Ponownie, prawdopodobnie jest to kwestia katalogu. Po rozwiązaniu problemu usuń polecenia PAUSE, w przeciwnym razie program się zawiesi.

Jeśli chcesz zakończyć plik wsadowy podczas jego wykonywania, kliknij w otwartym oknie cmd i wprowadź ^C (Ctrl C).

Krok 4: Zawijanie

Zawijanie It
Zawijanie It

Stare komputery stacjonarne z systemem Windows nie są znane ze swojej niezawodności. Jaka jest pierwsza rzecz, którą robisz, gdy komputer się pakuje? Wyłącz zasilanie! Więc to właśnie zamierzamy zrobić. Znajdź wyłącznik czasowy AC w Walmart lub Amazon. Te tanie są mechaniczne (poniżej 10 USD), droższe są elektroniczne (ponad 20 USD). Zaprogramuj przełącznik, aby włączał się na przykład o 8 rano i wyłączał się 15 minut później. Podłącz komputer do gniazdka timera.

Gdy wyłącznik czasowy wysyła zasilanie do komputera, inicjowana jest następująca sekwencja zdarzeń:

  1. BIOS wykrywa zasilanie prądem zmiennym, komputer uruchamia się
  2. Windows uruchamia się (bez wpisywania hasła)
  3. Program kamery internetowej uruchamia się i robi zdjęcie
  4. Rozpoczyna się wykonywanie pliku wsadowego

    1. Opóźnienie zakończenia procesu rozruchu, przechwytywania obrazu i logowania do Internetu
    2. Uruchom plik PowerShell, aby wysłać wiadomość e-mail z załącznikiem
    3. Opóźnienie na zakończenie e-maila
    4. Wyłącz komputer

Wyłącznik czasowy odłączy zasilanie komputera. Jest to klucz do niezawodnej pracy bez nadzoru. Przeżyłem sporadyczne awarie dysku twardego, zawieszanie się programów i inne blokady komputera, ale gdy system zawiedzie, wraca po cyklu zasilania.

To podejście można łatwo dostosować do monitorowania bezpieczeństwa, na przykład użyj iSpy, aby złapać krótki klip wideo po wykryciu ruchu i wysłać wiadomość e-mail z załącznikiem wideo. W rzeczywistości koncepcja może zostać rozszerzona o wysyłanie alertu e-mail po wykryciu dowolnego zdarzenia oraz dodanie na Arduino i fizycznych czujnikach dostępnych w tym wszechświecie - niebo jest limitem!

Zalecana: