Configurar Postfix para usar el SMTP de Gmail en Ubuntu 20.04 LTS

Publicado por P. Ruiz en

Postfix_logoPostfix es un Agente de Transferencia de Correo, o MTA (del inglés Mail Transfer Agent) que actúa como un servidor o como un cliente SMTP para enviar o recibir correo electrónico.

Postfix puede actuar de forma independiente como servidor de correo electrónico. Sin embargo, para mejorar su fiabilidad en su entrega, podemos configurarlo para que utilice un servidor SMTP externo, como es el caso de Gmail.

SMTP es el protocolo que facilita el envío de correos electrónicos a través de Internet.

SMTP son las siglas de Simple Mail Transfer Protocol (Protocolo para Transferencia Simple de Correo).

En el artículo de hoy, te enseñaremos a instalar y configurar Postfix sobre Ubuntu Server 20.04 LTS, a través de una cuenta de correo que ya debes tener en Gmail.

Antes de nada, debemos considerar que, de forma predeterminada, la cuenta de Gmail tratará de evitar accesos externos. Esto significa que, antes de continuar, deberemos actuar sobre su configuración para que el resultado de nuestro trabajo de hoy sea satisfactorio.

En este sentido, podemos encontrarnos en dos situaciones:

    1. Que la cuenta de Gmail utilice verificación de 2 pasos. En este caso, deberemos crear una contraseña de aplicación. Es decir, una contraseña de 16 dígitos para que otros dispositivos y aplicaciones ajenos a Google puedan acceder a la cuenta.

      Nosotros hoy no vamos a tener en cuenta esta situación, pero si necesitas ayuda, puedes recurrir a la documentación oficial de Gmail: https://support.google.com/mail/answer/185833?hl=es.

    2. Cuando la cuenta que emplearemos utiliza autenticación por contraseña (que es el caso más habitual). En este caso, basta con habilitar la opción Acceso de aplicaciones poco seguras.

      Si, en estos momentos, estás autenticado en tu cuenta de Gmail, puedes acceder a dicha opción de configuración haciendo clic en este enlace.

Una vez allí, basta con activar la opción Permitir el acceso de aplicaciones poco seguras.

Configurar-Postfix-para-usar-el-SMTP-de-Gmail-en-Ubuntu-1804-LTS-001

Actualizar el sistema

Como es habitual cuando instalamos nuevos programas, lo primeros será actualizar la base de datos de paquetes de nuestro equipo. De esta forma, nos aseguramos de que instalamos la última versión del software que necesitemos. Lo conseguiremos ejecutando la siguiente orden:

sudo apt update

Y como estamos realizando una tarea administrativa, también tendremos que autenticarnos.

Configurar-Postfix-para-usar-el-SMTP-de-Gmail-en-Ubuntu-20-04-LTS-001

Al ejecutarlo, obtendremos un resumen del tamaño de la descarga y el tiempo empleado. También nos informaría sobre el número de paquetes que podemos actualizar.

Salida del comando update.

Configurar-Postfix-para-usar-el-SMTP-de-Gmail-en-Ubuntu-20-04-LTS-002

Al final de su salida, el propio comando update nos dice cómo podemos obtener información más detallada sobre los paquetes que pueden actualizarse.

Se trata del siguiente comando:

sudo apt list --upgradable

Al hacerlo, obtendríamos la lista con el nombre de cada paquete que tenga una versión más moderna en el repositorio que en nuestro sistema.

Sin embargo, nosotros usaremos directamente el comando upgrade, que utiliza la información descargada por update para instalar las últimas versiones de los paquetes actualizables, es decir, aquellos que tienen una versión más moderna en el repositorio que en nuestro equipo.

También podrán instalarse nuevos paquetes cuando éstos sean necesarios para satisfacer dependencias.

Para ejecutarlo, solo tendremos que escribir lo siguiente:

sudo apt upgrade

Como antes, la orden sudo nos permite ejecutar apt con privilegios administrativos.

Configurar-Postfix-para-usar-el-SMTP-de-Gmail-en-Ubuntu-20-04-LTS-003

El sistema nos muestra información sobre el proceso que va a realizar: el nombre y el número de paquetes que serán actualizados y el nombre y número de paquetes nuevos que habrá que instalar para satisfacer las dependencias. También el número de paquetes que habría que eliminar y el número de paquetes que quedarán sin actualizar (si fuese el caso).

Por último, veremos la cantidad de información que será preciso descargar y el espacio total que será necesario ocupar en el disco para llevar a cabo la tarea.

Una vez leída la información, si estamos de acuerdo, bastará con pulsar la tecla Y para continuar con el proceso.

Configurar-Postfix-para-usar-el-SMTP-de-Gmail-en-Ubuntu-20-04-LTS-004

Con esto, estamos listos para instalar Postfix. Y, como está incluido en los repositorios oficiales de Ubuntu, la tarea no puede ser más sencilla.

Instalar Postfix

En realidad, el paquete que instalaremos aquí es Mailutils, un conjunto de utilidades y librerías que permiten el manejo de correo electrónico. Al hacerlo, estaremos instalando Postfix, ya que forma parte de la librería. De este modo, también se instalan una serie de complementos que Postfix podrá utilizar para su funcionamiento.

Para instalar Mailutils solo tenemos que escribir lo siguiente:

 sudo apt install -y mailutils

Observa que hemos incluido el argumento -y. Esto hará que, ante cualquier pregunta que deba hacernos el comando apt, entienda que la respuesta será afirmativa (yes).

Configurar-Postfix-para-usar-el-SMTP-de-Gmail-en-Ubuntu-20-04-LTS-005

Durante la instalación, se mostrará un pequeño asistente de configuración.

Al comienzo, puede que te muestre una pantalla informativa indicando las características de los diferentes tipos de configuración que podemos aplicar. En este caso, una vez que hayamos leído las diferentes opciones disponibles, pulsaríamos la tecla Intro.

En mi caso, esta pantalla no se ha mostrado y aparece directamente la pantalla que nos permite elegir una de esas opciones.

Para elegir la opción que nos convenga, usaremos las teclas de cursor. Para nuestro ejemplo, nos decantaremos por Sitio de Internet.

Una vez elegida la opción, volvemos al pulsar la tecla Intro.

Configurar-Postfix-para-usar-el-SMTP-de-Gmail-en-Ubuntu-20-04-LTS-006

En la siguiente y última pantalla, deberemos establecer el nombre del sistema de correo. Básicamente, indicaremos el nombre de dominio que se utilizará para el ID. Por ejemplo, si quieres que las direcciones de correo tengan el aspecto usuario@somebooks.es, aquí escribiremos somebooks.es.

Como antes, cuando hayamos terminado pulsaremos la tecla Intro.

Configurar-Postfix-para-usar-el-SMTP-de-Gmail-en-Ubuntu-20-04-LTS-007

Después de esto, la instalación continuará unos instantes más.

Solo tenemos que esperar a que concluya.

Configurar-Postfix-para-usar-el-SMTP-de-Gmail-en-Ubuntu-20-04-LTS-008

Configurar Postfix

Aunque la instalación haya terminado, el servidor de correo aún no está listo para usar. Antes deberemos hacer una serie de ajustes.

Lo primero será editar su archivo de configuración, llamado main.cf, que podemos encontrar dentro de la carpeta /etc/postfix. Como aquí solemos utilizar el editor nano, escribiremos algo como esto:

 sudo nano /etc/postfix/main.cf

Como antes, escribimos el comando y pulsamos la tecla Intro.

Configurar-Postfix-para-usar-el-SMTP-de-Gmail-en-Ubuntu-20-04-LTS-009

Inmediatamente después tendremos el contenido del archivo en la pantalla.

Contenido del archivo main.cf.

Configurar-Postfix-para-usar-el-SMTP-de-Gmail-en-Ubuntu-20-04-LTS-010

Para realizar nuestras modificaciones, nos desplazaremos hasta el final del archivo. Ahí localizamos una línea que comienza por relayhost y no tiene ningún valor asignado.

Una vez localizada, la eliminamos

Configurar-Postfix-para-usar-el-SMTP-de-Gmail-en-Ubuntu-20-04-LTS-011

A continuación, nos desplazamos hasta el final del archivo y añadimos las siguientes líneas:

relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_use_tls = yes

Observa que hemos vuelto a añadir relayhost, pero esta vez le hemos asignado el valor del servidor SMTP de Gmail, incluido el puerto 587.

También hemos habilitado el soporte Cyrus-SASL para la autenticación, añadiendo la variable smtp_sasl_auth_enable y poniendo su valor a yes, hemos añadido la variable smtp_sasl_password_maps para indicar dónde se encontrará el archivo con las credenciales y hemos deshabilitado la posibilidad de autenticarse en modo anónimo asignando el valor noanonymous a la variable smtp_sasl_security_options.

Por último, para tener disponible el certificado de seguridad, lo guardaremos en un archivo e indicaremos su ruta en la variable smtp_tls_CAfile (más adelante veremos cómo crear este archivo). A continuación, indicaremos que debe utilizarse el protocolo TLS (Transport Layer Security) asignando el valor yes a la variable smtp_use_tls.

Cuando terminemos de escribir las líneas anteriores, salimos del editor pulsando las teclas Ctrl + X.

Configurar-Postfix-para-usar-el-SMTP-de-Gmail-en-Ubuntu-20-04-LTS-012

Al hacerlo, el editor nos preguntará si queremos guardar los cambios que hemos realizado.

Para contestar afirmativamente, pulsamos la tecla Y.

Configurar-Postfix-para-usar-el-SMTP-de-Gmail-en-Ubuntu-20-04-LTS-013

A continuación, nos da la oportunidad de cambiar el nombre del archivo, para no perder su valor anterior.

Como nosotros queremos sobrescribirlo, pulsamos la tecla Intro.

Configurar-Postfix-para-usar-el-SMTP-de-Gmail-en-Ubuntu-20-04-LTS-014

Crear el archivo de autenticación

En el paso anterior, en la variable smtp_sasl_password_maps hemos establecido dónde se encontrará el archivo que le permitirá a Postfix autenticarse en Gmail. Sin embargo, ese archivo aún no existe.

Para crearlo, recurriremos de nuevo al editor nano:

sudo nano /etc/postfix/sasl_passwd

Como en ocasiones anteriores, escribimos el comando y pulsamos la tecla Intro.

Configurar-Postfix-para-usar-el-SMTP-de-Gmail-en-Ubuntu-20-04-LTS-015

Como el archivo aún no existe, el área de trabajo del editor se mostrará completamente vacía. Nosotros incluiremos una primera línea que contendrá dos partes separadas por un espacio en blanco:

  1. El servidor SMTP de Gmail, con el mismo formato que usamos en el archivo main.cf.

  2. El nombre completo de nuestra cuenta en Gmail y su contraseña, separadas por un carácter de dos puntos (:)

En definitiva, algo como esto:

[smtp.gmail.com]:587 somebooks@gmail.com:mipassword

Sustituyendo, como es lógico, los valores de la cuenta y la contraseña por los que sean adecuados en tu caso.

Cuando terminemos de escribirla, salimos del editor pulsando las teclas Ctrl + X y asegurándonos de guardar los cambios.

Configurar-Postfix-para-usar-el-SMTP-de-Gmail-en-Ubuntu-20-04-LTS-016

A continuación, crearemos un archivo de base de datos hash para Postfix en la misma ruta que el archivo anterior. Para lograrlo, usaremos el comando postmap:

sudo postmap /etc/postfix/sasl_passwd

Una vez más, escribimos el comando y pulsamos la tecla Intro.

Configurar-Postfix-para-usar-el-SMTP-de-Gmail-en-Ubuntu-20-04-LTS-017

El resultado será un nuevo archivo, llamado sasl_passwd.db en el directorio /etc/postfix.

Como este archivo solo debe accederse con privilegios de root, haremos que éste sea su propietario:

sudo chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db

A continuación, haremos que sólo su propietario tenga permisos de lectura y escritura sobre él:

sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db

Ejecutamos ambos comandos

Configurar-Postfix-para-usar-el-SMTP-de-Gmail-en-Ubuntu-20-04-LTS-018

Crear el certificado de seguridad

En el archivo main.cf, también hicimos referencia a la variable smtp_tls_CAfile, que contenía la ruta del archivo donde se almacenaría el certificado de seguridad. Dicho archivo tampoco existe todavía, pero lo crearemos de un modo sencillo, copiando el certificado SSL que ya tenemos en la ruta /etc/ssl/certs.

Quizás la forma más sencilla de lograrlo sería con el copando cp, pero aquí lo haremos un poco más entretenido.

Comenzaremos usando el comando cat, que mostraría el archivo de origen en pantalla, pero redirigiremos su salida al comando tee, que tiene una función doble: por un lado muestra el contenido en pantalla (como esperábamos de cat) y por otro lo envía al archivo cacert.pem. Como, además, usamos el argumento -a, lograremos que, si existiese otro certificado en el archivo, el nuevo no lo sobrescriba, sino que lo añada a continuación.

cat /etc/ssl/certs/thawte_Primary_Root_CA.pem | sudo tee -a /etc/postfix/cacert.pem

De nuevo, escribimos el comando y pulsamos la tecla Intro.

Configurar-Postfix-para-usar-el-SMTP-de-Gmail-en-Ubuntu-20-04-LTS-019

A modo de confirmación, obtendremos el contenido del archivo en la pantalla.

Configurar-Postfix-para-usar-el-SMTP-de-Gmail-en-Ubuntu-20-04-LTS-020

Comprobar que todo funciona

Para terminar la tarea, comprobaremos que los ajustes realizados funcionan del modo que esperamos. Y lo haremos como antes, usando una tubería.

Primero usaremos la orden echo para mostrar un mensaje, pero lo reenviaremos a la orden mail, que enviará el texto a la dirección de correo que indiquemos. Además, usaremos el argumento -s para indicar el Asunto del mensaje.

En definitiva, lo orden quedará así:

echo "Prueba de envío" | mail -s "Prueba" somebooks.es@gmail.com

Una vez más, escribimos el comando y pulsamos la tecla Intro.

Configurar-Postfix-para-usar-el-SMTP-de-Gmail-en-Ubuntu-20-04-LTS-021

Si ahora consultamos el correo de destino, comprobaremos que tenemos un mensaje nuevo:

El mensaje se ha recibido correctamente.

Configurar-Postfix-para-usar-el-SMTP-de-Gmail-en-Ubuntu-20-04-LTS-022

Y esto es todo por el momento. Espero que te haya resultado útil.

El artículo de hoy lo hemos desarrollado sobre Ubuntu Server pero, para ponerlo en práctica sobre la versión de escritorio, solo tienes que abrir una ventana de terminal. Por ejemplo, usando la combinación de teclas Alt + Control + T.