En este tutorial, aprenderá cómo instalar sSMTP , un servidor de reenvío simple.
Mailtrap.io ofrece un servidor de correo electrónico falso para desarrolladores. Úselo para enviar informes o correos electrónicos durante la fase de desarrollo a direcciones reales, pero intercepte en Mailtrap.io (nunca se entregan al destinatario final) y vea de inmediato cómo se procesa su correo electrónico HTML o cómo se destaca un nuevo botón CTO.
Al integrar sSMTP y Mailtrap, su VPS de desarrollo de Ubuntu puede usar el mismo servidor de envío de correo electrónico para fines generales de correo, como informes de finalización de trabajos cron.
De esta manera, puede probar su aplicación con direcciones de correo electrónico reales y tener una idea de cómo se comporta en el lado del cliente, todo sin inundar sus cuentas de correo personales o de compañeros de trabajo.
Prerrequisitos
- Vultr VPS con Ubuntu 16.04 instalado y actualizado.
- Cuenta Mailtrap.io.
- Un usuario de sudo no root .
- Editor de texto de su elección, lo usaremos
nano
.
- Copia de seguridad o una instantánea de su instalación actual.
Procedimiento de instalación
Inicie sesión en su VPS como usuario habitual. Conviértase en administrador emitiendo lo siguiente.
sudo su
Luego confirme con su contraseña. Instale el paquete sSMTP para el lado del servidor con mutt como cliente de correo con fines de prueba.
apt install ssmtp mutt
Configuración
Ahora debe hacer que funcione con su mailtrap
cuenta.
Necesitará sus credenciales y nombres de servidor. En nuestro caso, el servidor está smtp.mailtrap.io
con puerto 2525
.
Hay dos archivos que estamos editando. Primero, mientras todavía está conectado como root, edite el archivo de configuración.
nano /etc/ssmtp/ssmtp.conf
Por defecto, se ve como el siguiente texto.
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=postmaster
# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=mail
# Where will the mail seem to come from?
#rewriteDomain=
# The full hostname
hostname=example.com
# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
#FromLineOverride=YES
En este punto, puede editar las entradas para que coincidan con sus propios valores o simplemente reemplazar todo el contenido con su información específica. Las entradas en mayúscula contienen sus datos reales. USERNAME@EXAMPLE.COM
es el correo electrónico desde el que desea enviar los correos electrónicos. MAILTRAP_USERNAME
y MAILTRAP_PASSWORD
se generan para usted en Mailtrap.io. Ambas son cadenas largas y aleatorias. Búscalo en tu bandeja de entrada de Mailtrap debajo SMTP Settings
.
root=USERNAME@EXAMPLE.COM
mailhub=smtp.mailtrap.io:2525
AuthUser=MAILTRAP_USERNAME
AuthPass=MAILRTRAP_PASSWORD
FromLineOverride=Yes
Guarda el archivo. Con nano presione " Ctrl-X
" y confirme con " Y
".
El segundo archivo que debe editarse es para asignar cuentas de usuarios locales a direcciones de correo electrónico externas, alias inverso. Trae el archivo.
nano /etc/ssmtp/revaliases
Agregue sus entradas al final para que se parezca a este texto.
# sSMTP aliases
#
# Format: local_account:outgoing_address:mailhub
#
# Example: root:your_login@your.domain:mailhub.your.domain[:port]
# where [:port] is an optional port number that defaults to 25.
root:USERNAME@EXAMPLE.COM:smtp.mailtrap.io:2525
username:USERNAME@EXAMPLE.COM:smtp.mailtrap.io:2525
Esencialmente, el sistema debe enviar todos los correos electrónicos de la cuenta local root
como usuario de correo electrónico a USERNAME@EXAMPLE.COM
través del mailtrap
servidor. Ingrese tantos usuarios como necesite, cada uno en su propia línea. Si solo necesita root
enviar mensajes, simplemente omita otras líneas. Puede volver más tarde y agregar usuarios según sea necesario.
Guarda el archivo. Con nano presione " Ctrl-X
" y confirme con " Y
".
Ya terminaste Es posible que desee verlo en acción enviándose un correo electrónico. Para hacer eso, cree su mensaje y envíelo.
echo "This is the body" | mutt -s "Hello World" SEND_TO_USERNAME@EXAMPLE.COM
Inicie sesión en su cuenta de Mailtrap y revise su bandeja de entrada de demostración. El correo ya debería estar esperando allí.
Conclusión
Finalmente, cambie su sesión de terminal de root
nuevo al usuario normal.
exit
Opcionalmente, agregue MAILTO=SEND_TO_USERNAME@EXAMPLE.COM
a su crontab. Para hacer una prueba rápida, digamos, revisando las subcarpetas en su /home
carpeta cada minuto, edite el crontab.
crontab -e
Elija su editor si es necesario y agregue / edite estas líneas al final para que se parezca al siguiente texto.
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
mailto=SEND_TO_USERNAME@EXAMPLE.COM
* * * * * ls /home
Esto se ejecuta ls /home
cada minuto y debido a que hay una MAILTO
entrada agregada, envía la respuesta a esa dirección. Puede obtener más información sobre las tablas de crontab aquí .
Guárdelo en la salida. Espere un correo electrónico en Mailtrap cada minuto.