sSMTP (Español)
sSMTP es un programa que entrega correo electrónico desde un ordenador local a un servidor de correo configurado (mailhub). No es un servidor de correo (como si lo es el servidor de correo rico en funciones sendmail) y no recibe correo, ni expande alias, ni administra una cola. Uno de sus usos principales es reenviar el correo electrónico automatizado (como las alertas del sistema) desde su equipo a una dirección de correo electrónico externa.
Instalación
Reenviar a un servidor de correo de Gmail
Para configurar sSMTP, deberá editar su archivo de configuración (/etc/ssmtp/ssmtp.conf) e ingresar la configuración de su cuenta.
- Si su cuenta de Gmail está protegida con autenticación de dos factores, debe generar una App Password única para usar en
ssmtp.conf. Puede hacerlo en su página App Passwords de Google. Use su nombre de usuario de Gmail (no el nombre de la aplicación) en la líneaAuthUsery use la contraseña de 16 caracteres generada en la líneaAuthPass(se pueden omitir espacios en la contraseña). - Si no usa la autenticación de dos factores, debe permitir el acceso a aplicaciones no seguras. Puede hacerlo en su página Less Secure Apps de Google.
/etc/ssmtp/ssmtp.conf
# El usuario que recibe todos los correos (UID <1000, generalmente el administrador) root=username@gmail.com # El servidor de correo (donde se envía el correo), tanto el puerto 465 como el 587 deberían ser aceptables # Véase también https://support.google.com/mail/answer/78799 mailhub=smtp.gmail.com:587 # La dirección de donde proviene el correo para la autenticación del usuario rewriteDomain=gmail.com # El nombre de equipo completo. Debe estar formado correctamente el nombre de dominio completo o GMail rechazará la conexión. hostname=yourlocalhost.yourlocaldomain.tld # Utilice SSL/TLS antes de comenzar la negociación TLS_CA_FILE=/etc/ssl/certs/ca-certificates.crt UseTLS=Yes UseSTARTTLS=Yes # Usuario/Contraseña AuthUser=username AuthPass=password AuthMethod=LOGIN # 'From header' del correo electrónico, ¿puede sobrescribir el dominio predeterminado? FromLineOverride=yes
Crear alias para nombres de usuario locales (opcional):
/etc/ssmtp/revaliases
root:username@gmail.com:smtp.gmail.com:587 mainuser:username@gmail.com:smtp.gmail.com:587
Para probar si el servidor de Gmail reenviará correctamente su correo electrónico:
$ echo -e 'Subject: prueba\n\nProbando los ajustes' | sendmail -v tousername@example.com
Cambie el texto de 'From' editando /etc/passwd para recibir correo de 'root at myhost' en lugar de solo 'root'.
# chfn -f 'root at myhost' root # chfn -f 'mainuser at myhost' mainuser
Que cambia /etc/passwd a:
$ grep myhost /etc/passwd
root:x:0:0:root at myhost,,,:/root:/bin/bash mainuser:x:1000:1000:mainuser at myhost,,,:/home/mainuser:/bin/bash
Seguridad
Debido a que su contraseña de correo electrónico se almacena como texto sin formato en /etc/ssmtp/ssmtp.conf, es importante que este archivo sea seguro. Por defecto, todo el directorio /etc/ssmtp es accesible solo por root y el grupo mail. El binario /usr/bin/ssmtp se ejecuta como el grupo mail y puede leer este archivo. No hay ninguna razón para agregarse usted u otros usuarios al grupo mail.
Enviar correo electrónico
Para enviar correos electrónicos desde el terminal, haga lo siguiente:
$ echo -e "Subject: this is the subject\n\nthis is the body" | mail user@example.com
o interactivamente como:
$ sendmail username@example.com Subject: este es mi asunto CC: opcional@ejemplo.com (Ahora puede escribir el texto aquí)
Ctrl+d en una línea en blanco para finalizar su mensaje y enviarlo automáticamente.Un método alternativo para enviar correos electrónicos es crear un archivo de texto y enviarlo con ssmtp o mail
test-mail.txt
To:nombreusuario@ejemplo.com From:sucuenta@gmail.com Subject: Prueba Este es un correo de prueba.
Envíe el archivo test-mail.txt:
$ sendmail -t < test-mail.txt
Algunos usuarios pueden preferir la sintaxis de mail con s-nail, mailutils, u otros proveedores de mailx en su lugar. Por ejemplo, mail tiene opciones para proporcionar el «subject» como un argumento. mail requiere sendmail y puede usar ssmtpAUR como sendmail.
Archivos adjuntos
Si necesita agregar archivos adjuntos, instale y configure Mutt y Msmtp y luego vea la sugerencia en nixcraft.
Alternativamente, puede adjuntar usando uuencode de sharutils. Para adjuntar 'file.txt' como 'myfile.txt':
$ uuencode file.txt myfile.txt | sendmail user@example.com
Correo a usuarios locales
Los mensajes enviados a usuarios locales (o cualquier otra dirección que no termine en @fqdn se tratan de una de estas dos maneras:
- el usuario de destino tiene UID < 1000 — la dirección se reemplaza por la dirección definida por
root=user@fqdnen/etc/ssmtp/ssmtp.conf; - el usuario de destino tiene UID ≥ 1000 o el usuario es desconocido — el valor de
rewriteDomain=en/etc/ssmtp/ssmtp.confse agrega al final del identificador del usuario.
Esto puede generar problemas si los usuarios locales en su sistema no son también usuarios válidos en su rewriteDomain, pero están recibiendo correo de los servicios del sistema, especialmente si su dominio de reescritura es un servicio público comogmail.com.
Para evitar esto, puede usar mail desde s-nail. La orden mail puede leer los alias definidos en /etc/mail.rc. Ejemplo:
$ grep alias /etc/mail.rc
alias git git<username@example.com> alias archuser 'My Name'<someone@example.com>
Luego puede canalizar mensajes en mail en lugar de sendmail:
$ echo -e "Hey archuser." | mail archuser
/bin/mail. No haga eso. sendmail y mail tienen una sintaxis diferente para los argumentos y la entrada estándar. Es mejor encontrar los procesos que utiliza «sendmail» directamente y configurarlos para usar «mail» en su lugar.