Hostwinds Tutoriales
Resultados de búsqueda para:
Tabla de contenido
Para comprender mejor qué es SMTP-CLI, hablemos de lo que no es;SMTP-CLI no es un servidor de correo electrónico o agente de relé;Tampoco es una forma de enviar altos volúmenes de correo.Es un cliente de correo electrónico que permite enviar texto, HTML, archivos e imágenes de la línea de comandos y los scripts.
En lugar de crear otro servidor de correo electrónico, puede usar SMTP-CLI para enviar actualizaciones desde su (s) VP (s) a través de una cuenta de correo electrónico remota para monitorear la salud o el estado. También podría configurar un trabajo de Cron para reenviar registros como parte del endurecimiento de la seguridad del servidor. Esto permite que su servidor se ejecute más o menos sin supervisión, a menos que se encuentren errores o se aborden los límites.
Utilizaremos GIT para agarrar el script SMTP-CLI de GitHub. Si aún no lo tiene instalado, puede instalarlo así:
# yum install -y git
# apt-get install -y git
# git clone https://github.com/mludvig/smtp-cli.git
El script SMTP-CLI (la parte que se ejecuta) se encuentra dentro de un directorio llamado SMTP-CLI, y dentro es un archivo llamado SMTP-CLI (la Bandera -L en el comando nos permite ver los atributos de archivo para asegurarse de que sea ejecutable).
# ls -l smtp-cli
Si esos "X" están en su lugar ",", luego ejecute este comando para que el archivo sea ejecutable.
# chmod +x smtp-cli/smtp-cli
Ahora podemos probar para ver si se ejecuta.
# smtp-cli/smtp-cli
Lo que debería resultar en un error como este
Es extraño que un error sea bueno, pero dado que solo estamos probando para asegurarnos de que el script se descargue y sea ejecutable, eso es todo lo que necesitamos en este momento.
Ahora vamos a verificar nuestra RUTA global (donde el VPS verifica cuando ejecuto cosas desde la línea de comando sin una ruta completa)
# echo $PATH
Y copie el smtp-cli al directorio sbin del usuario dentro de su RUTA predeterminada.
# cp smtp-cli/smpt-cli /usr/local/sbin
ls -l /usr/local/sbin/smtp*
Ahora podemos ejecutar SMTP-CLI de cualquier directorio en el VPS sin preocuparse por incluir la ruta completa al archivo.
Debido a que colocar su contraseña sin cifrar en un script es casi la más insegura, sin mencionar la manera difícil de administrar una contraseña, crearemos un archivo que contenga nuestra información de contraseña. Esto nos permite actualizar nuestra contraseña fácilmente y hace que un actor malicioso tenga que buscar la información.
Dado que estoy ejecutando como usuario root y creo una raíz cronjob, este archivo estará en el directorio / root / directorio. Su trabajo de Cron puede estar en su usuario CRONTAB, dependiendo de los privilegios que le otorga el administrador de su sistema, en cuyo caso puede estar almacenando esto en el / inicio / nombre de usuario.
# touch /root/.passwd
echo 'SomeRandomPassword' > /root/.passwd
Tenga en cuenta que la "SomerRandompassword, deberá ser el texto simple de su contraseña de correo electrónico real para su cuenta de correo electrónico remota.
Ahora llegamos a la parte buena, enviando un correo electrónico como parte de un script o desde la línea de comandos. Voy a probarlo enviando el archivo que creamos como parte de nuestra guía vnstat.
Como nota, la parte $ (algún comando) a continuación permite que un comando se ejecute en línea y use la salida de ese comando como entrada para el argumento.
# smtp-cli --verbose --server mail.emaildomain.TLD:587 --enable-auth --user smtp-cli_guide@emaildomain.TLD --pass $(cat /root/.passwd) --from smtp-cli_guide@emaildomain.TLD --to test2@emaildomain.TLD --subject VPS-stats --attach /var/www/html/vps_bandwidth_stats.png
Ahora que sabemos que funciona, podemos poner el comando en un script bash o en un trabajo cron.
#!/etc/bash
smtp-cli --verbose --server mailservername.emaildomain.TLD:587 --enable-auth --user login-user@emaildomain.TLD --pass $(cat /root/.passwd) --from email_orinator@emaildomain.TLD --to email_destination@emaildomain.TLD --subject subject-line --attach /full/path/filename.tosend >> /path/to/logfile.log
--help
--body-plain=<text|filename>
--body-html=<text|filename>
Si bien este ejemplo proporcionó la capacidad de configurar scripts o cronjobs, este sencillo programa de correo también puede enviar correo utilizando variables globales o salida para otros scripts de monitoreo; Todas estas herramientas pueden enviar alertas simples o datos de diagnóstico complejos a su correo electrónico en función de un intervalo regular o un evento desencadenante.
Se pueden surgir varios problemas diferentes al usar el script. El primer problema sería cómo se autentica su servidor de correo. ¿Usted ingresa una dirección de correo electrónico completa o simplemente un nombre de usuario? Eso es lo que necesitarías después del argumento -User. El ejemplo asume que ingresa la dirección de correo electrónico completa como -USER. Use qué credenciales use normalmente para su servidor.
La segunda área problemática es el campo –from. Asegúrese de que esta sea la cuenta de correo electrónico en la que está iniciando sesión. No puede enviar correo desde una cuenta que no controla.
El tercero es el nombre del servidor y la selección de puertos del campo de servidor. Este nombre debe ser un nombre de dominio completamente calificado de su servidor de correo electrónico saliente, seguido de A: PORTNUMTER. Los puertos estándar para SMTP son 25, 587, 465.
Finalmente, el campo -to debe ser una dirección de correo electrónico válida, o nunca llegará a un destino.
Escrito por Paul Schene / julio 10, 2020