PopExe Menu

PopExe Menu

 

Software Simple ha creado un nuevo software de producción propia, con licencia Freeware MIT License (100% permisiva para cualquier tipo de uso): PopExe. He aquí un pequeño manual de uso.

Se trata de un programa residente en memoria, sin ventanas gráficas destacables, tan sólo un menú situado en la barra de herramientas de windows, normalmente situada abajo, en la derecha de la pantalla. Está pensado para ser minimalista, al estilo de Software Simple.

 

PopExe – POP Email EXEcution

 

Automatización de tareas a través de comandos enviados por Email. No se necesita de servidor, tan sólo un PC autenticado con un usuario, ejecutando el fichero PopExe.exe, que leerá periódicamente los emails de la cuenta indicada, y a través de ellos recibirá comandos para ejecutar en el PC donde se ejecute. Está preparado para crear un ecosistema de nuevos comandos personalizados basados en Powershell, ficheros de procesos por lotes .Bat, o ficheros ejecutables en modo batch/consola, sin interfaz gráfica, llamables desde línea de comandos (CMD). Sólo para comandos en modo batch que no necesiten interrupción o petición de usuario, puesto que el sofware espera a que el proceso haya terminado para continuar revisando emails y buscando más comandos.
Requerimientos: Windows XP, Windows Vista, Windows 7, Windows 8, Windows 10, Windows 2003 Server. Cuenta de email: Servidor POP3 y SMTP. Una cuenta de correo de Gmail o Yahoo podría valer. Se puede usar en modo exclusivo, o compartido.
Público objetivo: Usuarios avanzados, administradores de sistemas, desarrolladores, y en general usuarios que necesiten interactuar con PC’s a distancia (Ej. desde un móvil con capacidad para enviar emails se podrían enviar comandos a su PC).

 

Instalación

Tan sólo copiar en un directorio los ficheros Popexe.exe y PopExe.ini que vienen en el fichero .Zip en el enlace de descarga (ver página de PopExe).

Toda su configuración se encuentra en el fichero PopExe.ini, que deberá situarse en el mismo directorio que el fichero ejecutable PopExe.exe.

Al iniciar por primera vez la aplicación, se creará el fichero Log en el mismo directorio, en donde se grabará la actividad de la aplicación, y los posibles errores. Existe muy poca interacción con el usuario, está pensado para ser un software que no moleste a la vista, al estilo de cualquier demonio de Linux.

Menú

El menú, que se activa pinchando sobre su icono desde la barra de herramientas, tiene muy pocas opciones:

  • Start on Windows User Logon. Si se activa, el software se carga automáticamente cuando se inicie sesión del usuario activo en Windows.
  • About. Muestra una ventana con la información del software, y su tipo de licencia.

    PopExe About

    PopExe About

  • Feedback. Muestra un submenú con distintas opciones para ponerse en contacto con nosotros, ya sea para enviar una incidencia o bug, una idea, un nuevo comando personalizado para incluir en nuestro catálogo y nuestra web (serán muy bienvenidas nuevas aportaciones), o para pedir ayuda, asesoría o soporte más personalizado.

PopExe_Menu_FeedbackPopExe_Send_Bug

  • Exit. Para salir de la aplicación y que deje de trabajar en segundo plano (background).

Al ser una aplicación pensada para trabajar con un sólo hilo de proceso por lotes, cuando la aplicación esté revisando y procesando nuevos Emails es posible que el menú se quede congelado antes de mostrarse una vez pulsado con el ratón el icono de PopExe. Tan sólo habrá que esperar que termine su proceso de revisión programado en el fichero de configuración.

Fichero de configuración (PopExe.INI)

PopEXE_INI_File

 

Aquí se encuentra toda la configuración de la aplicación, al estilo de cualquier script opensource. La idea era ser lo más simple posible, tanto en su ejecución como en su desarrollo.

En principio, aunque hay valores opcionales, los parámetros no se pueden borrar. En caso contrario aparecerá un mensaje de error al iniciar el programa de este tipo:

PopExe_Error_Message_INI

 

Repasemos uno por uno sus parámetros:

 

Secciones [POPEXE FREEWARE LICENSE] y [COMMENTS – README FIRST].- Son secciones de licencia y comentarios y ayuda de uso respectivamente. No afectan a la ejecución del programa, son para leerlos y como ayuda al uso de la aplicación.

 

Parámetros para configurar servidor de Email (POP3/SMTP). Sección [EMAIL SERVER]

 

smtp_server.- Nombre de servidor SMTP (para el envío de correos). Es el primero de los parámetros de la sección [EMAIL SERVER], que aglutina una serie de parámetros relacionados a la configuración del servidor de correo para poder leer o enviar mensajes de correo desde la aplicación. Es necesario si se quieren recibir emails de confirmación de proceso. Puede ser un servidor propio o gratuito. Esta información la suele facilitar el servidor de correo que se use, ya sea gratuito o de pago. Por ejemplo, el de Yahoo suele ser: smtp.mail.yahoo.com. No obstante, se aconseja que sea un servidor rápido, puesto que algunos gratuitos tardan bastante en responder, devuelven un mensaje de error de no envío por exceder el tiempo de TimeOut, aunque luego se pueden recibir mucho más tarde. Por ejemplo, con el de Yahoo he tenido algunos problemas al respecto.

smtp_port.- Puerto utilizado para el servidor SMTP. Suelen ser: 25 (Conexión sin seguridad SSL), 465 (SSL), o 587 (StarTLS – Secure TLS). Dependerá del servidor SMTP.

smtp_user.- Usuario SMTP. Suele ser la misma cuenta de correo que se quiere utilizar en PopExe para leer los emails, aunque podría ser otro (ej. x@yahoo.es).

smtp_password.- Contraseña del usuario SMTP. Debe estar encriptada bajo el sistema de encriptado/hash MD5. Hay distintas herramientas para generar un hash MD5 a partir de un texto (en este caso la contraseña. Si se busca en internet: “HASH MD5 Generator”, aparecerán distintas opciones. No obstante, tengo pensado crear una pequeña utilidad software para este cometido, y distribuirla o dejarla accesible junto a PopExe.

smtp_auth.- Tipo de autorización SMTP. Dependerá del servidor. Recomiendo probarlas todas si da error al intentar conectar con el servidor. Posibles valores numéricos, junto con su significado:

0: None, 1:Plain, 2: Login, 3: CRAM-MD5, 4: NTLM (SPA), 5: MSN

Para la cuenta de Yahoo utilizada en las pruebas utilicé el valor 1.

smtp_secure.- Si se usa conexión segura SSL para el servidor SMTP, se utiliza el valor 1. En caso contrario, valor 0.

smtp_timeout.- Tiempo de espera a que responda el servidor SMTP, valor en segundos. Por defecto está a 60 segundos, pero si el servidor es lento o suele dar errores al enviar, se puede aumentar este valor al tiempo que sea necesario (ej. 120, 180, ó 300 para 5 minutos de espera).

smtp_email.- Se escribe el email que se quiere que aparezca en el apartado From (De:) del correo recibido. Puede ser el mismo correo de recepción, o uno específico para envío.

smtp_displayname.- Puede indicarse el mismo email anterior, o una descripción con nombre del que envía el mensaje (Ej. PopExe). Puede servir para filtrar mensajes de comandos ejecutados, que se reciben como respuesta.

smtp_replyto.- Es opcional poner este parámetro. Es el correo de respuesta (Para/To) que aparecerá si se pulsa en cualquier software de lectura de correo a la opción “Responder”. No es relevante, puesto que no se suele usar responder a un email enviado por el sistema a raíz de la confirmación de un proceso/ comando.

pop_server.- Nombre de servidor de correo POP3, para la recepción de comandos. Ej. en Yahoo: pop.mail.yahoo.com.

pop_port.- Puerto del servidor POP3. Suelen ser: 110 (Sin SSL) or 995 (SSL). Aunque podrían ser otros puertos. El que indique el servidor de correo utilizado.

pop_user.- Usuario servidor POP3. Suele ser también el email (del tipo x@yahoo.es), aunque podría ser otro diferente. Ver configuración de la cuenta de correo, o preguntar en el proveedor del servidor de correos.

pop_password.- Contraseña del usuario del servidor POP3, en formato MD5. Ver parámetro smtp_password para más información.

pop_auth.- Tipo de autorización. Dependerá del servidor. Probar todos los casos si hay problemas. Posibles valores: 0: Regular, 1: APOP, 2: NTLM (SPA), 3: MSN. En los correos de Yahoo funciona con el valor cero.

pop_secure.- Tipo de seguridad del servidor POP3. Posibles valores: 0 para conexiones no SSL, y 1 para conexiones seguras SSL.

pop_timeout.- Tiempo de espera para recibir emails, en segundos. Por defecto está en 60 segundos. Si el servidor de emails entrante es lento, y da errores de TimeOut al recibir emails, se podrá ampliar. Si se quiere una ejecución rápida, se deberá de intentar utilizar servidores de correo rápidos, aunque funcionará igualmente la aplicación con servidores lentos. Se trata de ejecutar comandos batch en donde no existen ejecuciones en tiempo real.

 

Parámetros de configuración generales de la sección [SETTINGS]

email_from_command_auth.- Se trata de un parámetro de seguridad, de varios que tiene la aplicación, para ofrecer la máxima seguridad posible, en un sistema de por sí inseguro como es el envío y recepción de Emails. USE ESTA APLICACIÓN BAJO SU RESPONSABILIDAD. Si aparece como valor vacío, se admite a trámite cualquier email recibido de cualquier email de cualquier dominio de internet, para ejecutar cualquiera de los comandos (si se cumplen el resto de condiciones). Un posible uso sería crear un servicio de OpenData o similar, abierto al público como cualquier servicio web. También puede configurarse un único email de origen desde donde se envían comandos y PopExe los recibirá (para entornos en donde sólo una persona envía comandos, en modo administrador de un PC), o también puede ir configurado un dominio (precedido por su arroba @, es importante para que PopExe lo identifique como un dominio) si se quiere utilizar en un entorno empresarial o limitado. Ej: x@yahoo.es para un sólo email de origen (De:/ From:), ó @yahoo.es, para cualquier email de origen que proceda del dominio yahoo.es.

email_subject_command.- Es una etiqueta que se puede configurar en el asunto (Subject) del email a enviar como comando que reciba PopExe, con la idea de que PopExe identifique rápidamente al email recibido como un email que contiene comandos en su interior (en su cuerpo/Body). También sirve para que no haya problemas en la interpretación de comandos, porque se puedan mezclar comandos con emails escritos para otro uso diferente. Si se deja en blanco, no habrá etiqueta que identifique que es un email de comandos en el asunto, y por defecto revisará en el cuerpo de todos los emails recibidos que cumplan el resto de condiciones. Por defecto: <POPEXE>. No utilizar corchetes [] en etiquetas o comandos. Tanto las etiquetas como los comandos da igual que estén escritos en mayúsculas o minúsculas. El sistema de manera indiferente los detectará.

read_email_seconds.- Tiempo en segundos que se tardará en revisar nuevos emails recibidos. Puede ser desde 15 segundos hasta un máximo de 8 horas (8x60x60=28800 segundos). Depende de la frecuencia de lectura, se ejecutarán los comandos con más o menos celeridad.

num_commands_defined.- Es el número de comandos definidos en la sección [COMMANDS]. Se pueden revisar los comandos operativos realizando una petición con el comando de sistema LIST.

reply_email_cmd_messages.- Valores posibles: Yes, No. Si se indica Yes, se enviará un mensaje de respuesta a un email de comandos procesado al remitente del mensaje (De:/From:).

delete_emails_after_read.- ¡¡MUCHA PRECAUCIÓN!!. Posibles valores: Yes, No. Si se utiliza Yes, borrará los mensajes del servidor de correo una vez leídos. Será útil cuando se use de manera exclusiva. Se utilizará el valor No si se quiere compartir el uso del servidor de correo, o si se quiere dejar constancia por un tiempo de los emails recibidos (luego el usuario deberá borrarlos manualmente, o configurar su borrado en días posteriores a su lectura desde un cliente de lectura de correo POP3 tipo Outlook o Thunderbird).

show_msgbox_read_emails.- Posibles valores: Yes, No. Si se indica Yes, mostrará una ventana de proceso de lectura de emails como la que se muestra a continuación. Útil para depurar o revisar funcionamiento.

PopExe_Retrieve_Emails

debug_log_mode.- Posibles valores: Yes, No. Si se indica Yes, escribe más información sobre la ejecución del programa en el fichero log de errores (fichero de texto donde se muestra información de la ejecución de PopExe). También muestra mensaje transparente en pantalla durante 5 segundos cuando da error al procesar emails, independientemente de su escritura en el fichero log. Útil para realizar seguimiento de errores o probar el funcionamiento de nuevos comandos personalizados.

max_log_file_size_in_MB.- Valor numérico para limitar y controlar el tamaño del fichero de log, en megas (MB). Por defecto, 50 (50 MB).

database_sqlite_name.- Nombre de la base de datos SQLite 3 utilizada en la aplicación. Debe encontrarse, o se creará si no existe en el mismo directorio del ejecutable PopExe.exe. En la primera ejecución y procesado de emails, PopExe crea esta base de datos, en donde insertará registros de comandos procesados a partir de emails recibidos. Por defecto: popexe.db3. A continuación una muestra de la información guardada:

PopExe_SQLite_DB

 log_filename.- Nombre del fichero de log. Es un fichero de texto que se creará, o se utilizará el existente en el mismo directorio del ejecutable PopExe.exe. Por defecto popexe.log.

popexe_admin_email.- Requerido. Es el email de administrador de PopExe. Puede utilizarse para recibir emails con copia o copia oculta (CC o CCO) de cada email procesado, o para recibir/ enviar mensajes de error desde la aplicación.

send_mail_cc_to_email_admin.- Valores: Yes, No. Si el anterior parámetro está vacío, este parámetro se ignora. Sirve para enviar copia (CC) de respuesta de un comando procesado. Es independiente del parámetro reply_email_cmd_messages, que se usa para responder al email origen del comando. Puede servir como elemento de seguridad extra, para asegurarnos de qué comandos se procesan y recibir un justificante de su ejecución.

send_mail_bcc_to_email_admin.- Valores: Yes, No. Igual que el parámetro anterior, pero para enviar email al administrado con copia oculta (CCO). Si el parámetro send_mail_cc_to_email_admin tiene valor Yes, éste parámetro se ignora.

file_email_response_attach.- Nombre de fichero de respuesta, que debe estar ubicado en el mismo directorio del ejecutable PopExe.exe. Se adjunta cuando se envía un email de respuesta (ya sea porque el parámetro popexe_admin_email tiene indicado un email administrador y cualquiera de los parámetros send_mail_cc_to_email_admin y send_mail_bcc_to_email_admin están a Yes, o porque el parámetro reply_email_cmd_messages=Yes para responder al email origen de la petición de comando), en el caso de que exista.

Los nuevos comandos personalizados pueden utilizarlo para insertar información o log de errores de sus procesos. Valor por defecto: Popexe_Result.txt. Entre cada lectura y lectura de email se borra el fichero. En el caso de comandos múltiples en un email, los comandos implicados deberán de anexar cada uno lo que quieran insertar en dicho fichero el resultado que deseen.

 

Sección de Comandos [COMMANDS]

 

Existen dos tipos de comandos: Los de sistema, y los personalizados, y ambos se configuran en este apartado. Los personalizados podrán ser cualquier fichero Powershell, .bat, o executable por lotes en modo consola, sin interfaz gráfica y sin interacción con el usuario, y sin pausas de ejecución, para que cumpla las condiciones de proceso batch por lotes. Podrán llevar parámetros que se escribirán a continuación de los comandos, y serán parámetros en modo texto (automáticamente se les colocarán comillas dobles al procesarlos).

cmdX.- Donde la X será el número de comando, comenzando por cero. Por ejemplo, si hay 10 comandos definidos, se deberá indicar el número de comandos total en el parámetro num_commands_defined, y los parámetro cmdX que aparecerán en está sección irán desde el cmd0 hasta el cmd9, para que sean correctamente leídos. Para confirmarlo, enviar un email con el comando LIST, indicar el parámetro reply_email_cmd_messages=Yesy esperar respuesta, para comprobar si todos los comandos fueron bien definidos.

cmd_exeX.- Donde X es el número de comando, comenzando desde el cero (ver parámetro cmdX). Contendrá el comando tipo CMD, como si se ejecutase desde una ventana de MS-DOS desde Windows. Deberá llevar la ruta completa, y estará escrito entre comillas dobles, para que se pueda ejecutar correctamente en caso de que lleve directorios o nombres de ficheros con espacios.

cmd_usageX.- Donde X es el número de comando, comenzando desde cero (ver parámetro cmdX). Contendrá el modo de uso del comando, por si lleva algún parámetro. Servirá para listarlo con el comando de sistema LIST.

Comandos de sistema por defecto. Se podrán borrar para mayor seguridad si no se quieren dar por defecto. Los comandos que queden, deberán tener un número correlativo, y el número total de comandos que queden indicarse en el parámetro num_commands_defined. Se caracterizan porque en el parámetro cmdX aparece con el contenido <SystemCommand>, y están definidos internamente en la aplicación PopExe. Los que se han creado inicialmente son:

cmd0= LIST
cmd_exe0= <SystemCommand>
cmd_usage0= LIST -> List commands

cmd1= RUNCMD
cmd_exe1= <SystemCommand>
cmd_usage1= RUNCMD “path& .bat or .exe file” [params] -> Execute .bat or .exe file

 

Ejemplo de nuevo comando personalizado por el usuario

 

[SETTINGS]

num_commands_defined=3

file_email_response_attach= Popexe_Result.txt
[COMMANDS]

cmd2=   DIR
cmd_exe2=   C:\PopExe\Commands\dir.bat
cmd_usage2=   DIR

Y el fichero dir.bat contendría el siguiente código:

dir C:\ /S <<C:\PopExe\Popexe_Result.txt

De esta manera habríamos creado un comando que nos devuelve la lista completa de ficheros de la unidad C: del PC donde se ejecuta PopExe, y recibiríamos el fichero Popexe_Result.txt con el resultado.

Para ejecutarlo, escribimos un email dirigido al email asociado a la configuración del servidor POP3, en asunto ponemos la etiqueta definida en el parámetro email_subject_command (ej. <POPEXE> otra información cualquiera para identificar el correo), y en el cuerpo (Body) del mensaje escribimos:

DIR

 

Consideraciones especiales

  • La aplicación está pensada para poder compartir el uso de la cuenta de email con cualquier otra actividad. En ese caso se recomienda siempre configurar etiqueta en el Asunto (Ej: <POPEXE>) que identifique que se trata de un email de comandos, teniendo cuidado de no mezclar comandos con texto escrito si va dirigido a otra persona (en CC por ejemplo). La aplicación por defecto no borra los mensajes del servidor, a no ser que se indique lo contrario. ¡¡PRECAUCIÓN!! USE ESTA APLICACIÓN BAJO SU COMPLETA RESPONSABILIDAD. En el caso de que se use de manera compartida, y compaginado con un cliente de correo (Ej. Outlook o Thunderbird), se deberá indicar en él un mínimo de tiempo antes de borrar los mensajes del servidor de correo cuando se descargue emails. No se recomienda un uso compartido de la cuenta de correo mediante Webmail, o desde cualquier sistema que no borre los mensajes del servidor de correo, a no ser que los correos recibidos se borren periódicamente del servidor. Esto es porque si los correos no se borran por defecto desde PopExe al leerlos (ver configuración del fichero .INI), el tiempo que cada proceso de servidor revise los emails será proporcional al número de emails guardados sin borrar.
  • No se puede usar los corchetes [] como parte de ningún comando, etiqueta, o parámetro (esto último habría que confirmarlo). Los corchetes forman parte de caracteres reservados por el sistema.
  • Los nuevos comandos personalizados deberán tener en cuenta si quieren usar el fichero de respuesta que se adjunta en los emails configurado en el parámetro file_email_response_attach, que si quieren funcionar correctamente en emails con más de una línea de comandos en su cuerpo (Body), tendrán que comprobar si existe primero, y anexar en vez de crear el fichero en cada comando.

 

Free WordPress Themes, Free Android Games