Jump to content
From ArchWiki

Esta traducción de sSMTP fue revisada el 2020-12-07. Si existen cambios puede actualizarla o avisar al equipo de traducción.

Artículos relacionados

- OpenSMTPD
- msmtp
- S-nail

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.

Nota: sSMTP está desatendido Considere usar algo como msmtp o OpenSMTPD en su lugar.

## Instalación

Instale el paquete ssmtpAUR.

## 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ínea `AuthUser` y use la contraseña de 16 caracteres generada en la línea `AuthPass` (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

Nota: Tenga en cuenta que la configuración que se muestra es un ejemplo para Gmail. Puede que tenga que usar otras configuraciones. Si no funciona como se esperaba, lea la página de manual ssmtp(8).

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í)

Nota: Cuando utilice «mail» de forma interactiva, después de escribir Subject: asunto y otros encabezados, presione «intro» dos veces y luego escriba el texto. Presione `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@fqdn` en `/etc/ssmtp/ssmtp.conf`;
- el usuario de destino tiene UID ≥ 1000 o el usuario es desconocido — el valor de `rewriteDomain=` en `/etc/ssmtp/ssmtp.conf` se 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 como`gmail.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

Nota: Es posible que tenga la tentación de vincular sendmail a `/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.

## Referencias

- SSMTP y Gmail en los foros de Arch
- Enviar correo electrónico desde su sistema con sSMTP
- La guía Qnd para ssmtp
- Soporte de GMail — Configuración de otros clientes de correo

Category:

- Mail server (Español)