Need help? Chat now!

Hostwinds Tutoriales

Resultados de búsqueda para:


Tabla de contenido


¿Qué es smtp-cli?
Prerrequisitos
Preparar
Dependencias
CentOS / Fedora
Ubuntu / Debian
Descargar el repositorio SMTP-CLI
Crear un archivo de contraseña de correo electrónico
Envío de correo con smtp-cli
Aquí está la plantilla de código para un script bash
Y aquí está el correo electrónico que se envió
Algunos otros argumentos útiles de smtp-cli
Solución de problemas

Cómo usar smtp-cli para crear un agente de envío de correo simple (Linux)

Etiquetas: Email,  Linux 

¿Qué es smtp-cli?
Prerrequisitos
Preparar
Dependencias
CentOS / Fedora
Ubuntu / Debian
Descargar el repositorio SMTP-CLI
Crear un archivo de contraseña de correo electrónico
Envío de correo con smtp-cli
Aquí está la plantilla de código para un script bash
Y aquí está el correo electrónico que se envió
Algunos otros argumentos útiles de smtp-cli
Solución de problemas

¿Qué es smtp-cli?

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.

Prerrequisitos

  • un servidor de correo electrónico remoto con su cuenta de correo electrónico
  • un VPS que requiere que se envíe correo saliente
  • Command Line Access to above VPS (via SSH or Get VNC)

Preparar

  • 1 Hostwinds VPS con CentOS 7
  • una cuenta de correo electrónico de cPanel
  • el cliente Putty SSH se utilizará para acceder

Dependencias

Utilizaremos GIT para agarrar el script SMTP-CLI de GitHub. Si aún no lo tiene instalado, puede instalarlo así:

CentOS / Fedora

# yum install -y git

Ubuntu / Debian

# apt-get install -y git

Descargar el repositorio SMTP-CLI

# 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.

Crear un archivo de contraseña de correo electrónico

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.

Envío de correo con smtp-cli

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.

Aquí está la plantilla de código para un script bash

#!/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

Y aquí está el correo electrónico que se envió

Algunos otros argumentos útiles de smtp-cli

--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.

Solución de problemas

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