Innehållsförteckning:

Skicka automatiskt e -post med foto från batchfil med gammalt skrivbord och XP: 4 steg
Skicka automatiskt e -post med foto från batchfil med gammalt skrivbord och XP: 4 steg

Video: Skicka automatiskt e -post med foto från batchfil med gammalt skrivbord och XP: 4 steg

Video: Skicka automatiskt e -post med foto från batchfil med gammalt skrivbord och XP: 4 steg
Video: Batchfilstruktur och inställningsmetod 2024, November
Anonim
Skicka automatiskt e -post med foto från batchfil med gammalt skrivbord och XP
Skicka automatiskt e -post med foto från batchfil med gammalt skrivbord och XP

Jag är mycket lyckligt lottad som har en fantastisk utsikt från mitt hemkontorsfönster. När jag är borta vill jag se vad jag saknar och jag är ofta borta. Jag brukade ha en egen webbplats och en hemväderstation som skulle ladda upp alla väderdata via ftp och ett foto som togs ut genom fönstret, men webbhotellleverantören gjorde underhållet av webbplatsen betungande, så efter många år tappade jag den. Jag tänkte hitta en ersättningsmetod för att titta ut genom fönstret t.ex. gratis webbplatser, bloggar, e -post … men i de flesta fall blockerades automatiska ftp -överföringar till dessa potentiella lösningar. En ytterligare komplikation är att jag ofta är borta i flera månader i taget, så vilken lösning som än bestäms måste vara pålitlig.

Jag inspirerades av Instructables -författaren Olivi3r och hans Instructable för att skapa en säkerhetskamera. Efter någon dag med handvridning fick jag det att fungera. Denna instruktionsbok lägger till några viktiga detaljer.

I grund och botten är målet att ta ett foto med webbkameran varje morgon och sedan skicka fotot till mig själv via gmail som bilaga. Detta kommer att ske enligt följande:

  • Nätströmmen slås på i 15 minuter med en 110VAC -timer
  • Datorn startar
  • Webbkameraprogramvara tar ett foto
  • En Windows -batchfil körs som kommer att:
  • Kör en PowerShell -skriptfil som skickar e -postmeddelandet och bilagan
  • Batchfilkommandot stänger av datorn
  • Nätströmmen stängs av

Varningar: Jag är inte en Windows -programmerare - fråga mig inte om det inte fungerar. Jag fick detta tillvägagångssätt för att fungera genom att snorkla via Internet tills jag hittade den insikt som behövs för att felsöka mina filer. För det andra ville jag att detta skulle köras på en Windows XP -maskin, jag är säker på att det finns bättre lösningar på en Windows 10 -dator. Faktum är att det förmodligen finns bättre lösningar på en XP -maskin. Om du hittar några, skriv dem i kommentarerna. Att köra detta tillvägagångssätt på en bärbar dator kan vara jobbigt eftersom datorn måste slås på när nätströmmen slås på. Instructables kodredigerare har en otäck vana att infoga och andra HTML -taggar i koden (inklusive Olivi3rs kod). Jag tror att jag har redigerat alla dessa, men se upp.. Slutligen skulle Instructables "Full Preview" -knappen bara ge mig en tom vit sida - så WYSIWYG!

Vi kommer att göra detta i 4 steg:

  1. Förbered datorn
  2. Skriv och felsöka ett PowerShell -skript
  3. Skriv och felsök en batchfil
  4. Avsluta allt och Bob är din farbror!

Steg 1: Förbered datorn

Gräv först ett gammalt skrivbord ur garderoben. Om det körs på Windows XP (SP3) - det kommer att fungera. Denna Instructable är utformad för XP men tillvägagångssättet bör vara detsamma i Windows 10. Slå på det och aktivera BIOS (vanligtvis F1, del eller F2 under startprocessen). Hitta något som "Power Management" och ändra det till "AC Power Recovery - ON". Detta gör att datorn startar upp när nätströmmen slås på. Testa det.

Du måste inaktivera alla lösenord och logga in som administratör. Detta beror på att datorn måste slutföra uppstartsprocessen utan uppsikt. Gå till Kontrollpanelen, Användarkonton och gör lämpliga ändringar om det behövs.

Därefter behöver du en webbkamera och ett webbkameraprogram som tar en bild och lagrar den. Jag använder Dorgem - enkelt och gratis. Ställ in Dorgem för att ta en bild och lagra den på skrivbordet. Ändra inte bildens namn när du tar en ny bild, skriv istället över den sista bilden. I det här exemplet är bilden Pic.jpg. Observera också att jag lagrar bilden på skrivbordet. Detta är viktigt eftersom katalogsökvägen är enkel. Dra och släpp Dorgem -ikonen i mappen STARTUP i Windows.

Nu - ett par knepiga bitar:

Du måste ändra ditt Chrome -konto för att tillåta mindre säkra appar. Goggle "krom mindre säkra appar" och välj det första alternativet - förmodligen det här. Slå på den här funktionen. Du får ett e -postmeddelande som informerar dig om farorna med denna inställning. Du kanske inte behöver göra detta om du använder en annan e -postserver, t.ex. Yahoo, AOL …

Därefter måste du aktivera körningen av PowerShell -skript. Om du kör Windows 10 är detta enklare - klicka på Windows -ikonen (nedre vänstra hörnet av skärmen), rulla ner i listan över program till Windows PowerShell, expandera, högerklicka på PowerShell och välj "Kör som administratör". Detta öppnar PowerShell -fönstret. På XP är processen lite mer komplicerad - använd File Explorer, hitta PowerShell -katalogen (något som C: / Windows / system32 / WindowsPowerShell / v1.0), högerklicka på PowerShell -ikonen och välj "Pin to start -meny". Nu har du tillgång till PowerShell genom att klicka på Start -ikonen (nedre vänster) och klicka på PowerShell -ikonen. Klicka på PowerShell -ikonen, i fönstret som dyker upp skriver du följande kommando:

uppsättning-körningspolicy fjärransignerad

Du kommer att bli ombedd att bekräfta genom att skriva "y".

bekräfta att du har ändrat körningspolicyn genom att skriva:

genomförandepolicy

Ok! Din dator är klar.

Steg 2: Skriv och felsök en PowerShell -fil

Kopiera och klistra in den här texten i Anteckningar:

$ EmailTo = "[email protected]"

$ EmailFrom = "[email protected]" $ Subject = "View" $ 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 = New-Object Net. Mail. SmtpClient ($ SmtpServer, 587) $ SMTPClient. EnableSsl = $ True $ SMTPClient. Credentials = New-Object System. Net. NetworkCredential ("userID", "password"); $ SMTPClient. Send ($ SMTPMessage)

Spara den här filen på skrivbordet som "SendPic.ps1".

Gör lämpliga ändringar av; du, användar -ID och lösenord. Vanligtvis är ditt användar -ID samma som din fullständiga Gmail -adress.

Om du inte använder Gmail måste du rota runt på Internet för att hitta porten som är associerad med din Smtp -server och ändra "587" till lämplig port, t.ex. smtp.mail.yahoo.com och porten är 465.

I stället för att använda Anteckningar är PowerShell -redigeraren tillgänglig.

Nu för den stora - högerklicka på SendPic PowerShell -filen och välj "Kör med PowerShell". Om det fungerar får du ett e -postmeddelande på några sekunder. Om det inte gör det måste du börja felsöka.

Felsökning

Skapa en ny PowerShell -fil på ditt skrivbord med namnet test1 som skickar ett e -postmeddelande utan bilaga:

$ 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", "Lösenord"); $ SMTPClient. Send ($ SMTPMessage)

Öppna filen med PowerShell -redigeraren genom att högerklicka på filen och välja "Redigera". Genom att köra från redigeraren kan vi läsa de felmeddelanden som blinkar när du dubbelklickar på filen.

cd. / skrivbord

. / test1.ps1

Om detta misslyckas beror det troligen på ett katalogproblem. Se till att PowerShell pekar på skrivbordskatalogen. Kommandotolken kommer att se ut ungefär så här:

PS C: / Users / you / Desktop>

Om det inte gör det måste du komma ihåg alla dina gamla DOS -kommandon; cd, dir,. \, etc för att få PowerShell att peka på skrivbordet. Försök igen, om det inte fungerar, läs felmeddelandet för att upptäcka problemet

. / test1

Steg 3: Skriv och felsök en batchfil

Öppna Anteckningar och kopiera följande text:

PING localhost -n 180> NUL

powershell.exe. / SendPic.ps1 avstängning -s -t 100

PING -uttalandet är ett riktigt hack som skickar ut en kommunikationsbegäran varannan 180 gånger. Fördröjningen bör vara tillräckligt lång för att datorn ska starta upp, upprätta internetanslutning och ta en webbkamerafoto. Nyare versioner av Windows stöder TIMEOUT - mycket renare.

Nästa uttalande kör PowerShell -filen som skickar e -postmeddelandet med foto bifogat.

Det sista uttalandet får datorn att stängas av efter 100 sekunders fördröjning. Denna tid väljs som tillräcklig för att skicka e -postmeddelandet.

Spara filen på skrivbordet som SendPic.bat (inte. TXT som kommer att hända om du inte lägger till tillägget till filnamnet. Dra och släpp filen i mappen STARTUP i Windows.

Dubbelklicka på ikonen för batchfilen. Du bör få e -postmeddelandet. Oj! Alltför lätt. Ja, mycket kan gå fel.

Felsökning

Problemet med felsökning av både denna.bat -fil och den föregående.ps1 -filen är att felen blinkar alldeles för snabbt för att läsa. Du kan sakta ner det med:

PAUS

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

PAUSE väntar på att du trycker på ENTER -knappen. Läs felmeddelandet. Återigen är det förmodligen ett katalogproblem. När du har åtgärdat problemet, ta bort PAUSE -uttalandena, annars hänger programmet.

Om du vill avsluta batchfilen medan den körs, klicka i det öppna cmd -fönstret och skriv ^C (Ctrl C).

Steg 4: Förpackning

Slå in det
Slå in det

Gamla stationära datorer som kör Windows är inte kända för sin tillförlitlighet. Vad är det första du gör när datorn packas upp? Stäng av strömmen! Så det är vad vi ska göra. Hitta en AC Timer Switch på Walmart eller Amazon. De billiga är mekaniska (mindre än $ 10), de dyrare är elektroniska (mer än $ 20). Programmera omkopplaren så att den slås på till exempel 08:00 och stängs av 15 minuter senare. Anslut din dator till timeruttaget.

När timeromkopplaren skickar ström till din dator initieras följande händelseföljd:

  1. BIOS upptäcker nätström, datorn startar upp
  2. Windows startar (utan inloggning med lösenord)
  3. Webbkameraprogrammet startar och tar en bild
  4. Batchfilkörning startar

    1. Fördröjning för slutförande av startprocessen, bildtagning och internetinloggning
    2. Kör PowerShell -fil för att skicka e -post med bilaga
    3. Fördröjning för slutförande av e -post
    4. Stäng av dator

Timerkontakten tar sedan bort strömmen från datorn. Detta är nyckeln för tillförlitlig obevakad drift. Jag har överlevt intermittenta hårddiskfel, programhängningar och andra datorstopp, men när systemet misslyckas kommer det tillbaka efter en strömcykel.

Detta tillvägagångssätt kan enkelt anpassas till säkerhetsövervakning, till exempel, använd iSpy för att ta ett kort videoklipp när rörelse detekteras och skicka ett e -postmeddelande med en videofilm. Faktum är att konceptet kan utökas till att skicka en e -postvarning vid upptäckt av en händelse och med tillägg på en Arduino och de fysiska sensorer som finns i det universum - himlen är gränsen!

Rekommenderad: