Table des matières:

Envoyer automatiquement un e-mail avec une photo à partir d'un fichier batch à l'aide de l'ancien bureau et de XP : 4 étapes
Envoyer automatiquement un e-mail avec une photo à partir d'un fichier batch à l'aide de l'ancien bureau et de XP : 4 étapes

Vidéo: Envoyer automatiquement un e-mail avec une photo à partir d'un fichier batch à l'aide de l'ancien bureau et de XP : 4 étapes

Vidéo: Envoyer automatiquement un e-mail avec une photo à partir d'un fichier batch à l'aide de l'ancien bureau et de XP : 4 étapes
Vidéo: Transférer des Logicieles d'un Ordinateur à Un Autre Sous Windows 10/11 2024, Juillet
Anonim
Envoyer automatiquement un e-mail avec une photo à partir d'un fichier de commandes à l'aide de l'ancien bureau et de XP
Envoyer automatiquement un e-mail avec une photo à partir d'un fichier de commandes à l'aide de l'ancien bureau et de XP

J'ai la chance d'avoir une vue magnifique depuis la fenêtre de mon bureau à domicile. Quand je suis absent, je veux voir ce qui me manque et je suis souvent absent. J'avais l'habitude d'avoir mon propre site Web et une station météo domestique qui téléchargeait via ftp toutes les données météorologiques et une photo prise par la fenêtre, cependant, le fournisseur d'hébergement du site Web a rendu la maintenance du site Web onéreuse, donc après de nombreuses années, j'ai abandonné ce. J'avais l'intention de trouver une méthode de remplacement pour regarder par la fenêtre, par ex. sites Web gratuits, blogs, e-mails… mais dans la plupart des cas, les transferts ftp automatisés vers ces solutions potentielles ont été bloqués. Une complication supplémentaire est que je suis souvent absent pendant des mois d'affilée, donc quelle que soit la solution choisie, elle doit être fiable.

J'ai été inspiré par l'auteur d'Instructables Olivi3r et son Instructable pour créer une caméra de sécurité. Après une journée ou deux d'essorage, je l'ai fait fonctionner. Ce Instructable ajoute quelques détails clés.

Fondamentalement, le but est de prendre une photo avec la webcam tous les matins, puis de m'envoyer la photo via gmail en pièce jointe. Cela se passera comme suit:

  • L'alimentation secteur sera allumée pendant 15 minutes à l'aide d'une minuterie 110VAC
  • L'ordinateur s'allumera
  • Le logiciel de webcam capturera une photo
  • Un fichier batch Windows s'exécutera qui:
  • Exécutez un fichier de script PowerShell qui enverra l'e-mail et la pièce jointe
  • La commande de fichier batch arrête l'ordinateur
  • L'alimentation secteur s'éteindra

Avertissements: je ne suis pas un programmeur Windows - ne me demandez pas si cela ne fonctionne pas. J'ai fait fonctionner cette approche en naviguant sur Internet jusqu'à ce que je trouve les informations nécessaires pour déboguer mes fichiers. Deuxièmement, je voulais que cela fonctionne sur une machine Windows XP, je suis sûr qu'il existe de meilleures solutions sur un ordinateur Windows 10. En fait, il existe probablement de meilleures solutions sur une machine XP. Si vous en trouvez, collez-les dans les commentaires. L'exécution de cette approche sur un ordinateur portable peut être risquée car l'ordinateur doit s'allumer lorsque l'alimentation secteur est allumée. L'éditeur de code Instructables a la mauvaise habitude d'insérer et d'autres balises HTML dans le code (y compris le code d'Olivi3r). Je pense que j'ai édité tout cela, mais méfiez-vous… Enfin, le bouton Instructables "Full Preview" ne me donnerait qu'une page blanche vierge - donc WYSIWYG !

Nous allons procéder en 4 étapes:

  1. Préparer l'ordinateur
  2. Écrire et déboguer un script PowerShell
  3. Écrire et déboguer un fichier batch
  4. Enveloppez tout et Bob est votre oncle !

Étape 1: préparer l'ordinateur

Tout d'abord, sortez un vieux bureau du placard. S'il fonctionne sous Windows XP (SP3), cela fonctionnera. Ce Instructable est conçu pour XP mais l'approche devrait être la même sur Windows 10. Lancez-le et invoquez le BIOS (généralement F1, del ou F2 pendant le processus de démarrage). Trouvez quelque chose comme « Gestion de l'alimentation » et remplacez-le par « Récupération de l'alimentation CA - ON ». Cela fera démarrer l'ordinateur lorsque l'alimentation secteur est allumée. Essaye-le.

Vous devrez désactiver tous les mots de passe et vous connecter en tant qu'administrateur. C'est parce que l'ordinateur doit terminer le processus de démarrage sans surveillance. Accédez au Panneau de configuration, Comptes d'utilisateurs et apportez les modifications appropriées si nécessaire.

Ensuite, vous avez besoin d'une webcam et d'une application de webcam qui prendront une photo et la stockeront. J'utilise Dorgem - simple et gratuit. Configurez Dorgem pour prendre une photo et la stocker sur le bureau. Ne changez pas le nom de la photo lorsque vous prenez une nouvelle photo, écrasez plutôt la dernière photo. Dans cet exemple, l'image est Pic.jpg. Notez également que je stocke l'image sur le bureau. Ceci est important car le chemin du répertoire est simple. Faites glisser et déposez l'icône Dorgem dans le dossier de démarrage de Windows.

Maintenant, quelques éléments délicats:

Vous devez modifier votre compte Chrome pour autoriser les applications moins sécurisées. Goggle "applications moins sécurisées chromées" et sélectionnez la première option - probablement celle-ci. Activez cette fonction. Vous recevrez une alerte email vous informant des dangers de ce paramétrage. Vous n'aurez peut-être pas à le faire si vous utilisez un autre serveur de messagerie, par ex. Yahoo, AOL…

Ensuite, vous devez activer l'exécution de scripts PowerShell. Si vous exécutez Windows 10, c'est plus facile - cliquez sur l'icône Windows (coin inférieur gauche de l'écran), faites défiler la liste des programmes jusqu'à Windows PowerShell, développez, faites un clic droit sur PowerShell et sélectionnez "Exécuter en tant qu'administrateur". Cela ouvrira la fenêtre PowerShell. Sous XP, le processus est un peu plus compliqué - utilisez l'explorateur de fichiers, recherchez le répertoire PowerShell (quelque chose comme C:\Windows\system32\WindowsPowerShell\v1.0), faites un clic droit sur l'icône PowerShell et sélectionnez "Épingler pour démarrer le menu". Vous avez maintenant accès à PowerShell en cliquant sur l'icône Démarrer (en bas à gauche) et en cliquant sur l'icône PowerShell. Cliquez sur l'icône PowerShell, dans la fenêtre qui s'ouvre tapez la commande suivante:

set-executionpolicy remotesigned

Il vous sera demandé de confirmer en tapant "y".

confirmez que vous avez bien modifié la politique d'exécution en tapant:

politique d'exécution

D'accord! Votre ordinateur est prêt.

Étape 2: écrivez et déboguez un fichier PowerShell

Copiez et collez ce texte dans le Bloc-notes:

$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 = Nouvel objet System. Net. Mail. Attachment("C:\Documents and Settings\Administrator\Desktop\pic.jpg") $SMTPMessage. Attachments. Add($attachment) $ SMTPClient = Nouvel objet Net. Mail. SmtpClient($SmtpServer, 587) $SMTPClient. EnableSsl = $True $SMTPClient. Credentials = Nouvel objet System. Net. NetworkCredential("ID utilisateur", "mot de passe"); $SMTPClient. Envoyer($SMTPMessage)

Enregistrez ce fichier sur le bureau sous le nom "SendPic.ps1".

Apportez les modifications appropriées à; vous, l'identifiant et le mot de passe. Généralement, votre identifiant est le même que votre adresse Gmail complète.

Si vous n'utilisez pas Gmail, vous devez parcourir Internet pour trouver le port associé à votre serveur SMTP et remplacer le "587" par le port approprié, par exemple. smtp.mail.yahoo.com et le port est 465.

Au lieu d'utiliser le Bloc-notes, l'éditeur PowerShell est disponible.

Maintenant, pour le grand - faites un clic droit sur le fichier SendPic PowerShell et sélectionnez "Exécuter avec PowerShell". Si cela fonctionne, vous recevrez un e-mail en quelques secondes. Si ce n'est pas le cas, vous devez commencer le débogage.

Débogage

Créez un nouveau fichier PowerShell sur votre bureau nommé test1 qui envoie un e-mail sans pièce jointe:

$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 = Nouvel objet Net. Mail. SmtpClient($SmtpServer, 587) $SMTPClient. EnableSsl = $True $SMTPClient. Credentials = Nouvel-objet System. Net. NetworkCredential("userID", "le mot de passe"); $SMTPClient. Envoyer($SMTPMessage)

Ouvrez le fichier avec l'éditeur PowerShell en faisant un clic droit sur le fichier et en sélectionnant "Modifier". En exécutant depuis l'éditeur, nous pouvons lire les messages d'erreur qui clignotent lorsque vous double-cliquez sur le fichier.

cd.\bureau

.\test1.ps1

Si cela échoue, cela est probablement dû à un problème de répertoire. Assurez-vous que PowerShell pointe vers le répertoire du bureau. L'invite de commande ressemblera à ceci:

PS C:\Utilisateurs\vous\Bureau>

Si ce n'est pas le cas, vous devrez vous souvenir de toutes vos anciennes commandes DOS; cd, dir,.\, etc pour que PowerShell pointe vers le bureau. Essayez à nouveau, si cela ne fonctionne pas, lisez le message d'erreur pour vous aider à découvrir le problème

.\test1

Étape 3: écrivez et déboguez un fichier batch

Ouvrez le Bloc-notes et copiez le texte suivant:

PING localhost -n 180 >NUL

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

L'instruction PING est un véritable hack qui envoie une demande de communication toutes les secondes 180 fois. Le délai doit être suffisamment long pour que l'ordinateur démarre, établisse la connectivité Internet et prenne une photo de la webcam. Les versions plus récentes de Windows prennent en charge TIMEOUT - beaucoup plus propre.

L'instruction suivante exécute le fichier PowerShell qui envoie l'e-mail avec photo en pièce jointe.

L'instruction finale provoque la mise hors tension de l'ordinateur après un délai de 100 secondes. Ce temps est choisi comme suffisant pour envoyer l'email.

Enregistrez le fichier sur votre bureau en tant que SendPic.bat (et non. TXT comme cela se produira si vous n'ajoutez pas l'extension au nom de fichier. Faites glisser et déposez le fichier dans le dossier de démarrage de Windows.

Double-cliquez sur l'icône du fichier batch. Vous devriez recevoir l'e-mail. Ouah ! Trop facile. Ouais, eh bien, beaucoup de choses peuvent mal tourner.

Débogage

Le problème avec le débogage de ce fichier.bat et du fichier.ps1 précédent est que les erreurs clignotent beaucoup trop rapidement pour être lues. Vous pouvez le ralentir avec:

PAUSE

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

PAUSE attendra que vous appuyiez sur la touche ENTER. Lisez le message d'erreur. Encore une fois, il s'agit probablement d'un problème de répertoire. Après avoir résolu le problème, supprimez les instructions PAUSE, sinon le programme se bloquera.

Si vous souhaitez terminer le fichier batch pendant son exécution, cliquez dans la fenêtre cmd ouverte et entrez ^C (Ctrl C).

Étape 4: Envelopper

Envelopper
Envelopper

Les anciens ordinateurs de bureau exécutant Windows ne sont pas réputés pour leur fiabilité. Quelle est la première chose que vous faites lorsque votre ordinateur fait ses valises ? Coupez le courant ! C'est donc ce que nous allons faire. Trouvez une minuterie AC chez Walmart ou Amazon. Les moins chères sont mécaniques (moins de 10 $), les plus chères sont électroniques (plus de 20 $). Programmez l'interrupteur pour qu'il s'allume à, par exemple, 8 heures du matin et s'éteigne 15 minutes plus tard. Branchez votre ordinateur dans la prise de la minuterie.

Lorsque le minuteur alimente votre ordinateur, la séquence d'événements suivante est déclenchée:

  1. Le BIOS détecte l'alimentation secteur, l'ordinateur démarre
  2. Windows démarre (sans mot de passe)
  3. Le programme de webcam démarre et prend une photo
  4. L'exécution du fichier batch démarre

    1. Délai d'achèvement du processus de démarrage, de capture d'image et de connexion Internet
    2. Exécutez le fichier PowerShell pour envoyer un e-mail avec pièce jointe
    3. Délai d'achèvement de l'e-mail
    4. Éteindre l'ordinateur

L'interrupteur de minuterie coupera alors l'alimentation de l'ordinateur. C'est la clé pour un fonctionnement sans surveillance fiable. J'ai survécu à des pannes intermittentes de disque dur, à des blocages de programme et à d'autres blocages de l'ordinateur, mais lorsque le système tombe en panne, il revient après un cycle d'alimentation.

Cette approche est facilement adaptable à la surveillance de la sécurité, par exemple, utilisez iSpy pour capturer un court clip vidéo lorsqu'un mouvement est détecté et envoyer un e-mail avec une pièce jointe vidéo. En fait, le concept pourrait être étendu pour envoyer une alerte par e-mail lors de la détection de tout événement et avec l'ajout d'un Arduino et des capteurs physiques disponibles dans cet univers - le ciel est la limite !

Conseillé: