Sommario:

Invia automaticamente e-mail con foto da file batch utilizzando il vecchio desktop e XP: 4 passaggi
Invia automaticamente e-mail con foto da file batch utilizzando il vecchio desktop e XP: 4 passaggi

Video: Invia automaticamente e-mail con foto da file batch utilizzando il vecchio desktop e XP: 4 passaggi

Video: Invia automaticamente e-mail con foto da file batch utilizzando il vecchio desktop e XP: 4 passaggi
Video: Outlook 2007 e 2010: esportare, salvare i messaggi e-mail e la rubrica dei contatti 2024, Novembre
Anonim
Invia automaticamente e-mail con foto da file batch utilizzando il vecchio desktop e XP
Invia automaticamente e-mail con foto da file batch utilizzando il vecchio desktop e XP

Sono molto fortunato ad avere una splendida vista dalla finestra del mio ufficio a casa. Quando sono via, voglio vedere cosa mi manca e sono spesso via. Avevo il mio sito Web e una stazione meteorologica domestica che caricava tramite ftp tutti i dati meteorologici e una foto scattata fuori dalla finestra, tuttavia, il provider host del sito Web ha reso onerosa la manutenzione del sito Web, quindi dopo molti anni ho abbandonato esso. Volevo trovare un metodo sostitutivo per guardare fuori dalla finestra, ad es. siti web gratuiti, blog, e-mail… ma nella maggior parte dei casi i trasferimenti ftp automatizzati verso queste potenziali soluzioni sono stati bloccati. Un'ulteriore complicazione è che sono spesso via per mesi alla volta, quindi qualunque soluzione venga stabilita deve essere affidabile.

Sono stato ispirato dall'autore di Instructables Olivi3r e dal suo Instructable per la creazione di una telecamera di sicurezza. Dopo un giorno o due di strizzare le mani, l'ho fatto funzionare. Questo Instructable aggiunge alcuni dettagli chiave.

Fondamentalmente, l'obiettivo è scattare una foto con la webcam ogni mattina e poi inviare la foto a me stesso tramite gmail come allegato. Ciò avverrà come segue:

  • L'alimentazione CA verrà attivata per 15 minuti utilizzando un timer da 110 V CA
  • Il computer si accenderà
  • Il software della webcam catturerà una foto
  • Verrà eseguito un file batch di Windows che:
  • Esegui un file di script PowerShell che invierà l'e-mail e l'allegato
  • Il comando file batch spegnerà il computer
  • L'alimentazione CA si spegnerà

Avvertenze: non sono un programmatore di Windows - non chiedetemi se non funziona. Ho fatto funzionare questo approccio facendo snorkeling in Internet fino a quando non ho trovato le informazioni necessarie per eseguire il debug dei miei file. In secondo luogo, volevo che funzionasse su una macchina Windows XP, sono sicuro che ci sono soluzioni migliori su un computer Windows 10. In effetti, ci sono probabilmente soluzioni migliori su una macchina XP. Se ne trovate qualcuna, scrivetela nei commenti. L'esecuzione di questo approccio su un laptop potrebbe essere rischiosa perché il computer deve accendersi quando viene accesa l'alimentazione CA. L'editor di codice Instructables ha la brutta abitudine di inserire e altri tag HTML nel codice (incluso il codice di Olivi3r). Penso di aver modificato tutti questi elementi, ma attenzione.. Infine, il pulsante "Anteprima completa" di Instructables mi darebbe solo una pagina bianca vuota, quindi WYSIWYG!

Lo faremo in 4 passaggi:

  1. Prepara il computer
  2. Scrivere ed eseguire il debug di uno script PowerShell
  3. Scrivere ed eseguire il debug di un file batch
  4. Chiudi tutto e Bob è tuo zio!

Passaggio 1: preparare il computer

Per prima cosa, tira fuori un vecchio desktop dall'armadio. Se è in esecuzione su Windows XP (SP3), funzionerà. Questo Instructable è progettato per XP ma l'approccio dovrebbe essere lo stesso su Windows 10. Avvialo e richiama il BIOS (di solito F1, del o F2 durante il processo di avvio). Trova qualcosa come "Gestione alimentazione" e cambialo in "Ripristino alimentazione CA - ON". In questo modo il computer si avvierà all'accensione dell'alimentazione CA. Provalo.

Dovrai disabilitare tutte le password e accedere come amministratore. Questo perché il computer deve completare il processo di avvio non presidiato. Vai a Pannello di controllo, Account utente e apporta le modifiche appropriate, se necessario.

Successivamente, hai bisogno di una webcam e di un'applicazione per webcam che scatterà una foto e la memorizzerà. Io uso Dorgem - semplice e gratuito. Configura Dorgem per scattare una foto e salvarla sul desktop. Non modificare il nome dell'immagine quando si scatta una nuova foto, ma sovrascrivere l'ultima immagine. In questo esempio l'immagine è Pic.jpg. Inoltre, tieni presente che sto memorizzando l'immagine sul desktop. Questo è importante perché il percorso della directory è semplice. Trascina e rilascia l'icona di Dorgem nella cartella STARTUP di Windows.

Ora - un paio di bit complicati:

Devi cambiare il tuo account Chrome per consentire app meno sicure. Goggle "app Chrome meno sicure" e seleziona la prima opzione, probabilmente questa. Attiva questa funzione. Riceverai un avviso e-mail che ti informa dei pericoli di questa impostazione. Potrebbe non essere necessario farlo se si utilizza un server di posta diverso, ad es. Yahoo, AOL…

Successivamente è necessario abilitare l'esecuzione degli script di PowerShell. Se stai utilizzando Windows 10, questo è più semplice: fai clic sull'icona di Windows (angolo in basso a sinistra dello schermo), scorri verso il basso l'elenco dei programmi fino a Windows PowerShell, espandi, fai clic con il pulsante destro del mouse su PowerShell e seleziona "Esegui come amministratore". Questo aprirà la finestra di PowerShell. Su XP il processo è un po' più complicato: usa Esplora file, trova la directory di PowerShell (qualcosa come C:\Windows\system32\WindowsPowerShell\v1.0), fai clic con il pulsante destro del mouse sull'icona di PowerShell e seleziona "Aggiungi al menu di avvio". Ora hai accesso a PowerShell facendo clic sull'icona Start (in basso a sinistra) e facendo clic sull'icona PowerShell. Fare clic sull'icona di PowerShell, nella finestra che si apre digitare il seguente comando:

set-executionpolicy remotesigned

Ti verrà chiesto di confermare digitando "y".

confermare di aver modificato correttamente la politica di esecuzione digitando:

politica di esecuzione

Ok! Il tuo computer è pronto.

Passaggio 2: scrivere ed eseguire il debug di un file PowerShell

Copia e incolla questo testo nel Blocco note:

$EmailTo = "[email protected]"

$EmailFrom = "[email protected]" $Subject = "Visualizza" $Body = "x" $SMTPServer = "smtp.gmail.com" $SMTPMessage = Nuovo oggetto 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 = Nuovo oggetto Net. Mail. SmtpClient($SmtpServer, 587) $SMTPClient. EnableSsl = $True $SMTPClient. Credentials = Nuovo oggetto System. Net. NetworkCredential("userID", "password"); $SMTPClient. Send($SMTPMessaggio)

Salva questo file sul desktop come "SendPic.ps1".

Apportare le modifiche appropriate a; tu, ID utente e password. Di solito il tuo ID utente è lo stesso del tuo indirizzo Gmail completo.

Se non stai utilizzando Gmail, devi eseguire il root su Internet per trovare la porta associata al tuo server Smtp e modificare "587" con la porta appropriata, ad es. smtp.mail.yahoo.com e la porta è 465.

Invece di usare Blocco note, è disponibile l'editor di PowerShell.

Ora per quello grande: fai clic con il pulsante destro del mouse sul file SendPic PowerShell e seleziona "Esegui con PowerShell". Se funziona, riceverai un'e-mail in pochi secondi. In caso contrario, è necessario avviare il debug.

Debug

Crea un nuovo file PowerShell sul desktop denominato test1 che invia un'e-mail senza allegato:

$EmailTo = "[email protected]"

$EmailFrom = "[email protected]" $Subject = "test" $Body = "x" $SMTPServer = "smtp.gmail.com" $SMTPMessage = Nuovo oggetto System. Net. Mail. MailMessage($EmailFrom, $ EmailTo, $Subject, $Body) $SMPTClient = Nuovo oggetto Net. Mail. SmtpClient($SmtpServer, 587) $SMTPClient. EnableSsl = $True $SMTPClient. Credentials = Nuovo oggetto System. Net. NetworkCredential("userID", "parola d'ordine"); $SMTPClient. Send($SMTPMessaggio)

Apri il file con l'editor PowerShell facendo clic con il pulsante destro del mouse sul file e selezionando "Modifica". Eseguendo dall'editor, possiamo leggere i messaggi di errore che lampeggiano quando fai doppio clic sul file.

cd.\desktop

.\test1.ps1

Se questo fallisce, è probabilmente a causa di un problema di directory. Assicurati che PowerShell sia puntato alla directory del desktop. Il prompt dei comandi sarà simile a questo:

PS C:\Utenti\tu\Desktop>

In caso contrario, dovrai ricordare tutti i tuoi vecchi comandi DOS; cd, dir,.\, ecc. per far puntare PowerShell al desktop. Riprova, se non funziona, leggi il messaggio di errore per aiutare a scoprire il problema

.\test1

Passaggio 3: scrivere e eseguire il debug di un file batch

Apri Blocco note e copia il seguente testo:

PING localhost -n 180 >NUL

powershell.exe.\SendPic.ps1 spegnimento -s -t 100

L'istruzione PING è un vero e proprio hack che invia una richiesta di comunicazione ogni secondo 180 volte. Il ritardo dovrebbe essere sufficientemente lungo da consentire al computer di avviarsi, stabilire la connettività Internet e scattare una foto con la webcam. Le versioni più recenti di Windows supportano TIMEOUT - molto più pulito.

L'istruzione successiva esegue il file PowerShell che invia l'e-mail con la foto allegata.

L'istruzione finale fa sì che il computer si spenga dopo un ritardo di 100 secondi. Questo tempo viene scelto come sufficiente per inviare l'e-mail.

Salva il file sul desktop come SendPic.bat (non. TXT come accadrà se non aggiungi l'estensione al nome del file. Trascina e rilascia il file nella cartella STARTUP di Windows.

Fare doppio clic sull'icona del file batch. Dovresti ricevere l'e-mail. Whoa! Troppo facile. Sì, beh, molte cose possono andare storte.

Debug

Il problema con il debug di questo file.bat e del precedente file.ps1 è che gli errori lampeggiano troppo velocemente per essere letti. Puoi rallentarlo con:

PAUSA

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

PAUSE attenderà che tu prema il tasto ENTER. Leggi il messaggio di errore. Di nuovo, è probabilmente un problema di directory. Dopo aver risolto il problema, rimuovere le istruzioni PAUSE, altrimenti il programma si bloccherà.

Se si desidera terminare il file batch durante l'esecuzione, fare clic nella finestra di cmd aperta e immettere ^C (Ctrl C).

Passaggio 4: avvolgerlo

Avvolgendolo
Avvolgendolo

I vecchi desktop con Windows non sono rinomati per la loro affidabilità. Qual è la prima cosa che fai quando il tuo computer si riempie? Spegnere l'alimentazione! Quindi è quello che faremo. Trova un interruttore timer AC su Walmart o Amazon. Quelli economici sono meccanici (meno di $10), quelli più costosi sono elettronici (più di $20). Programmare l'interruttore in modo che si accenda, ad esempio, alle 8 del mattino e si spenga 15 minuti dopo. Collega il tuo computer alla presa del timer.

Quando l'interruttore del timer invia l'alimentazione al computer, viene avviata la seguente sequenza di eventi:

  1. Il BIOS rileva l'alimentazione CA, il computer si avvia
  2. Avvio di Windows (senza accesso con password)
  3. Il programma della webcam si avvia e scatta l'immagine
  4. Inizia l'esecuzione del file batch

    1. Ritardo per il completamento del processo di avvio, acquisizione delle immagini e accesso a Internet
    2. Esegui il file PowerShell per inviare e-mail con allegato
    3. Ritardo per il completamento dell'e-mail
    4. Spegnere il computer

L'interruttore del timer rimuoverà quindi l'alimentazione dal computer. Questa è la chiave per un funzionamento non presidiato affidabile. Sono sopravvissuto a guasti intermittenti del disco rigido, blocchi del programma e altri blocchi del computer, ma quando il sistema si guasta, si ripresenta dopo un ciclo di alimentazione.

Questo approccio è facilmente adattabile al monitoraggio della sicurezza, ad esempio, utilizzare iSpy per catturare un breve video clip quando viene rilevato un movimento e inviare un'e-mail con un allegato video. In effetti, il concetto potrebbe essere esteso per inviare un'e-mail di avviso al rilevamento di qualsiasi evento e con l'aggiunta di un Arduino e dei sensori fisici disponibili in quell'universo: il cielo è il limite!

Consigliato: