Tabla de contenido:

Envíe automáticamente un correo electrónico con una foto desde un archivo por lotes utilizando un escritorio antiguo y XP: 4 pasos
Envíe automáticamente un correo electrónico con una foto desde un archivo por lotes utilizando un escritorio antiguo y XP: 4 pasos

Video: Envíe automáticamente un correo electrónico con una foto desde un archivo por lotes utilizando un escritorio antiguo y XP: 4 pasos

Video: Envíe automáticamente un correo electrónico con una foto desde un archivo por lotes utilizando un escritorio antiguo y XP: 4 pasos
Video: ✅Como descargar todas las fotos de google fotos al pc 2024, Junio
Anonim
Envíe automáticamente un correo electrónico con una foto desde un archivo por lotes utilizando Old Desktop y XP
Envíe automáticamente un correo electrónico con una foto desde un archivo por lotes utilizando Old Desktop y XP

Soy muy afortunado de tener una gran vista desde la ventana de mi oficina en casa. Cuando estoy fuera, quiero ver lo que me falta y con frecuencia estoy fuera. Solía tener mi propio sitio web y una estación meteorológica en casa que cargaba a través de ftp todos los datos meteorológicos y una foto tomada por la ventana, sin embargo, el proveedor de alojamiento del sitio web hizo que el mantenimiento del sitio web fuera oneroso, así que después de muchos años, dejé de eso. Tenía la intención de encontrar un método de reemplazo para mirar por la ventana, p. sitios web gratuitos, blogs, correo electrónico… pero en la mayoría de los casos se bloquearon las transferencias ftp automatizadas a estas posibles soluciones. Una complicación adicional es que con frecuencia estoy fuera durante meses, por lo que cualquier solución que se decida debe ser confiable.

Me inspiré en el autor de Instructables Olivi3r y su Instructable para crear una cámara de seguridad. Después de un día más o menos de retorcerse las manos, lo tenía funcionando. Este Instructable agrega algunos detalles clave.

Básicamente, el objetivo es tomar una foto con la cámara web todas las mañanas y luego enviarme la foto a mí mismo a través de Gmail como archivo adjunto. Esto sucederá de la siguiente manera:

  • La alimentación de CA se encenderá durante 15 minutos con un temporizador de 110 VCA
  • La computadora se encenderá
  • El software de la cámara web capturará una foto
  • Se ejecutará un archivo por lotes de Windows que:
  • Ejecute un archivo de secuencia de comandos de PowerShell que enviará el correo electrónico y el archivo adjunto
  • El comando de archivo por lotes apagará la computadora
  • La alimentación de CA se apagará

Advertencias: no soy un programador de Windows, no me pregunten si no funciona. Conseguí que este enfoque funcionara buceando a través de Internet hasta que encontré la información necesaria para depurar mis archivos. En segundo lugar, quería que esto se ejecutara en una máquina con Windows XP, estoy seguro de que hay mejores soluciones en una computadora con Windows 10. De hecho, probablemente haya mejores soluciones en una máquina XP. Si encuentra alguno, péguelo en los comentarios. Ejecutar este enfoque en una computadora portátil podría ser peligroso porque la computadora debe encenderse cuando se enciende la alimentación de CA. El editor de código Instructables tiene la mala costumbre de insertar y otras etiquetas HTML en el código (incluido el código de Olivi3r). Creo que las he editado todas, pero cuidado … Por último, el botón "Vista previa completa" de Instructables solo me daría una página en blanco, ¡así que WYSIWYG!

Haremos esto en 4 pasos:

  1. Prepara la computadora
  2. Escribir y depurar un script de PowerShell
  3. Escribir y depurar un archivo por lotes
  4. ¡Envuélvelo todo y Bob es tu tío!

Paso 1: prepare la computadora

Primero, saque una vieja computadora de escritorio del armario. Si se ejecuta en Windows XP (SP3), funcionará. Este Instructable está diseñado para XP pero el enfoque debería ser el mismo en Windows 10. Enciéndalo e invoque el BIOS (generalmente F1, del o F2 durante el proceso de arranque). Busque algo como "Administración de energía" y cámbielo a "Recuperación de energía de CA - ENCENDIDO". Esto hará que la computadora se inicie cuando se encienda la alimentación de CA. Pruébalo.

Deberá deshabilitar todas las contraseñas e iniciar sesión como administrador. Esto se debe a que la computadora debe completar el proceso de inicio sin supervisión. Vaya a Panel de control, Cuentas de usuario y realice los cambios necesarios si es necesario.

A continuación, necesita una cámara web y una aplicación de cámara web que tome una foto y la almacene. Yo uso Dorgem, simple y gratis. Configure Dorgem para tomar una foto y almacenarla en el escritorio. No cambie el nombre de la imagen cuando tome una nueva, en su lugar, sobrescriba la última imagen. En este ejemplo, la imagen es Pic.jpg. Además, tenga en cuenta que estoy almacenando la imagen en el escritorio. Esto es importante porque la ruta del directorio es fácil. Arrastre y suelte el icono de Dorgem en la carpeta INICIO de Windows.

Ahora, un par de cosas complicadas:

Debe cambiar su cuenta de Chrome para permitir aplicaciones menos seguras. Utilice la opción "Aplicaciones menos seguras de Chrome" y seleccione la primera opción, probablemente esta. Activa esta función. Recibirá una alerta por correo electrónico que le informa de los peligros de esta configuración. Es posible que no tenga que hacer esto si utiliza un servidor de correo electrónico diferente, p. Ej. Yahoo, AOL…

A continuación, debe habilitar la ejecución de scripts de PowerShell. Si está ejecutando Windows 10, esto es más fácil: haga clic en el icono de Windows (esquina inferior izquierda de la pantalla), desplácese hacia abajo en la lista de programas hasta Windows PowerShell, expanda, haga clic con el botón derecho en PowerShell y seleccione "Ejecutar como administrador". Esto abrirá la ventana de PowerShell. En XP, el proceso es un poco más complicado: use el Explorador de archivos, busque el directorio de PowerShell (algo así como C: / Windows / system32 / WindowsPowerShell / v1.0), haga clic con el botón derecho en el icono de PowerShell y seleccione "Pin en el menú de inicio". Ahora tiene acceso a PowerShell haciendo clic en el icono de Inicio (abajo a la izquierda) y haciendo clic en el icono de PowerShell. Haga clic en el icono de PowerShell, en la ventana que aparece escriba el siguiente comando:

set-executionpolicy remotesigned

Se le pedirá que confirme escribiendo "y".

confirme que ha cambiado correctamente la política de ejecución escribiendo:

ejecución política

¡OK! Tu computadora está lista.

Paso 2: escribir y depurar un archivo de PowerShell

Copie y pegue este texto en el Bloc de notas:

$ EmailTo = "[email protected]"

$ EmailFrom = "[email protected]" $ Subject = "Ver" $ Body = "x" $ SMTPServer = "smtp.gmail.com" $ SMTPMessage = New-Object System. Net. Mail. MailMessage ($ EmailFrom, $ EmailTo, $ Asunto, $ Cuerpo) $ adjunto = New-Object System. Net. Mail. Attachment ("C: / Documents and Settings / Administrator / Desktop / pic.jpg") $ SMTPMessage. Attachments. Add ($ adjunto) $ SMTPClient = New-Object Net. Mail. SmtpClient ($ SmtpServer, 587) $ SMTPClient. EnableSsl = $ True $ SMTPClient. Credentials = New-Object System. Net. NetworkCredential ("ID de usuario", "contraseña"); $ SMTPClient. Send ($ SMTPMessage)

Guarde este archivo en el escritorio como "SendPic.ps1".

Realice los cambios apropiados en; usted, ID de usuario y contraseña. Por lo general, su ID de usuario es el mismo que su dirección completa de Gmail.

Si no está utilizando Gmail, debe navegar por Internet para encontrar el puerto asociado con su servidor Smtp y cambiar el "587" al puerto apropiado, por ejemplo. smtp.mail.yahoo.com y el puerto es 465.

En lugar de usar el Bloc de notas, está disponible el editor de PowerShell.

Ahora, para el más grande, haga clic con el botón derecho en el archivo SendPic PowerShell y seleccione "Ejecutar con PowerShell". Si funciona, recibirá un correo electrónico en unos segundos. Si no es así, debe comenzar a depurar.

Depuración

Cree un nuevo archivo de PowerShell en su escritorio llamado test1 que envía un correo electrónico sin un archivo adjunto:

$ 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", "contraseña"); $ SMTPClient. Send ($ SMTPMessage)

Abra el archivo con el editor de PowerShell haciendo clic derecho en el archivo y seleccionando "Editar". Al ejecutar desde el editor, podemos leer los mensajes de error que parpadean cuando haces doble clic en el archivo.

cd. / escritorio

. / test1.ps1

Si esto falla, probablemente se deba a un problema de directorio. Asegúrese de que PowerShell apunte al directorio del escritorio. El símbolo del sistema se verá así:

PS C: / Usuarios / usted / Escritorio>

Si no es así, tendrá que recordar todos sus antiguos comandos de DOS; cd, dir,. \, etc. para que PowerShell apunte al escritorio. Inténtelo de nuevo, si no funciona, lea el mensaje de error para ayudarlo a descubrir el problema

. / test1

Paso 3: escribir y depurar un archivo por lotes

Abra el Bloc de notas y copie el siguiente texto:

PING localhost -n 180> NUL

powershell.exe. / SendPic.ps1 apagado -s -t 100

La declaración PING es un truco real que envía una solicitud de comunicación cada segundo 180 veces. La demora debe ser lo suficientemente larga para que la computadora se inicie, establezca la conectividad a Internet y tome una foto con la cámara web. Las versiones más recientes de Windows admiten TIMEOUT, mucho más limpio.

La siguiente declaración ejecuta el archivo PowerShell que envía el correo electrónico con la foto adjunta.

La declaración final hace que la computadora se apague después de un retraso de 100 segundos. Este tiempo se elige como suficiente para enviar el correo electrónico.

Guarde el archivo en su escritorio como SendPic.bat (no. TXT como sucederá si no agrega la extensión al nombre del archivo. Arrastre y suelte el archivo en la carpeta INICIO de Windows.

Haga doble clic en el icono del archivo por lotes. Deberías recibir el correo electrónico. ¡Guau! Demasiado fácil. Sí, bueno, muchas cosas pueden salir mal.

Depuración

El problema con la depuración tanto de este archivo.bat como del archivo.ps1 anterior es que los errores parpadean demasiado rápido para leerlos. Puedes ralentizarlo con:

PAUSA

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

PAUSE esperará a que presione la tecla ENTER. Lea el mensaje de error. Una vez más, probablemente sea un problema de directorio. Una vez que haya solucionado el problema, elimine las instrucciones PAUSE; de lo contrario, el programa se bloqueará.

Si desea terminar el archivo por lotes mientras se está ejecutando, haga clic en en la ventana de cmd abierta e ingrese ^ C (Ctrl C).

Paso 4: Conclusión

Envolviendolo
Envolviendolo

Los equipos de escritorio antiguos que ejecutan Windows no son reconocidos por su confiabilidad. ¿Qué es lo primero que hace cuando su computadora empaca? ¡Apaga la energía! Entonces eso es lo que vamos a hacer. Encuentre un interruptor de temporizador de CA en Walmart o Amazon. Los baratos son mecánicos (menos de $ 10), los más costosos son electrónicos (más de $ 20). Programe el interruptor para que se encienda, por ejemplo, a las 8 a. M. Y se apague 15 minutos más tarde. Conecte su computadora a la salida del temporizador.

Cuando el interruptor del temporizador envía energía a su computadora, se inicia la siguiente secuencia de eventos:

  1. El BIOS detecta la alimentación de CA, la computadora se inicia
  2. Se inicia Windows (sin inicio de sesión con contraseña)
  3. El programa de la cámara web se inicia y toma una foto
  4. Comienza la ejecución del archivo por lotes

    1. Retraso para la finalización del proceso de arranque, captura de imágenes e inicio de sesión en Internet
    2. Ejecute el archivo de PowerShell para enviar un correo electrónico con un archivo adjunto
    3. Retraso para completar el correo electrónico
    4. Apagar la computadora

El interruptor del temporizador cortará la energía de la computadora. Esta es la clave para una operación desatendida confiable. He sobrevivido a fallas intermitentes del disco duro, bloqueos del programa y otros problemas de la computadora, pero cuando el sistema falla, vuelve después de un ciclo de energía.

Este enfoque es fácilmente adaptable al monitoreo de seguridad, por ejemplo, use iSpy para enganchar un videoclip corto cuando se detecte movimiento y envíe un correo electrónico con un video adjunto. De hecho, el concepto podría extenderse para enviar una alerta por correo electrónico ante la detección de cualquier evento y con la adición de un Arduino y los sensores físicos disponibles en ese universo: ¡el cielo es el límite!

Recomendado: