Seguramente aún no has podido enviarte un correo para probar el funcionamiento de postfix y las utilidades de mail que tiene la terminal de Ubuntu. Pues bien, en esta ocasión te enseñaré como solucionar este error.
NOTA IMPORTANTE: Este tutorial es para aquellas personas que tienen una cuenta de gmail con la autenticación en dos pasos activada (2FA). En el siguiente enlace podrás ver un tutorial de otra estudiante que funciona con cuentas de gmail con 2FA desactivado: Como hice la “Configuración de un servicio de mailing”. Este sería el “proceso normal a seguir”, pero si ya lo intentaste y no te funciona, sigue leyendo este post.
PASO A PASO:
- Lo primero que tendrás que hacer es “purgar” tu terminal. Eliminaremos todas las configuraciones anteriores que pudieras haber hecho para evitar conflictos con este tutorial.
Escribe en tu terminal lo siguiente (copia y pega si así lo prefieres):
sudo apt remove --purge postfix; sudo apt remove --purge mailutils
En esta línea de comando indicamos que elimine por completo postfix (el servicio de mailing que usamos en el curso) y mailutils (las utilidades de mail)
-
Instala postfix como lo indica la guía del curso: Configuración de un servicio de mailing. No te preocupes, también instala mailutils como lo indican ahí. Luego de hacer eso, todavía no vas a poder enviar mails. Aún faltan algunos pasos.
-
Vamos a configurar el archivo
main.cf
. Para ello, digita el siguiente comando:
sudo nano /etc/postfix/main.cf
Aquí indicamos que queremos editar el archivo main.cf
mediante la utilidad interactiva nano, el cual se encarga de editar el texto que haya allí. Una vez escrito damos enter y nos aparecerá una ventana como esta:

Bajarémos hasta el final del archivo con la tecla de flecha hacia abajo. Nos encontrarémos con una línea en donde esté escrito relayhost =
, como te abrás dado cuenta está vacía. Vamos a pegar lo siguiente después del simbolo de igual:
[smtp.gmail.com]:587
Luego pegarémos las siguientes líneas al final de todo el archivo:
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
Te deberá quedar algo como esto:

Guardamos con Ctrl + X, oprimimos Y y damos ENTER para salir del archivo. Con esto hecho ya hemos configurado parte del servicio de mailing.
- El siguiente paso es crear el archivo de autenticación. Aquí es donde corregirémos nuestro error.
Normalmente, algunas personas no tienen la autenticación de dos pasos activada en su correo, cosa que si me preguntas ESTÁ MAL. Por motivos de seguridad es mejor mantenerla activada. Sin embargo, para algunos procesos como este (configuración de servicio de mailing en la terminal de Ubuntu), la autenticación en dos pasos no puede llevarse a cabo. Google nos ofrece la posibilidad de crear contraseñas para aplicaciones no compatibles con el 2FA. Para hacerlo, haz lo siguiente:
-
Logeate en Gmail con tu cuenta (la cuenta que vas a utilizar)
-
Ve al siguiente enlace: https://security.google.com/settings/security/apppasswords
-
En Seleccionar app, selecciona Otra (nombre personalizado)

-
Dale un nombre arbitrario y clickea en GENERAR
-
Te aparecerá una contraseña de 16 caracteres encerrada en un cuadro de color amarillo. Copia esa contraseña

Ahora digitarémos el siguiente comando en la terminal:
sudo nano /etc/postfix/sasl_passwd
Por naturaleza sale este archivo vacío; copia y pega lo siguiente:
[smtp.gmail.com]:587 tuemail@gmail.com:contraseña-que-copiaste-anteriormente
Reemplaza el gmail y la contraseña de ejemplo por tu gmail y la contraseña que te dió google anteriormente. Te deberá quedar algo así:

Ahora guarda y cierra el archivo: Ctrl + X, Y, ENTER.
- Escribe ahora el siguiente comando:
sudo postmap /etc/postfix/sasl_passwd
Cambiarémos el usuario dueño para asegurarnos de tener los privilegios de postfix por completo. Lo harémos escribiendo lo siguiente en la terminal:
sudo chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
Configuramos algunos permisos, con lo siguiente:
sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
Y por último, crearémos el certificado de seguridad. Aquí te doy dos comandos para que intentes con el segundo si no te funciona el primero. Lo único que cambia es la ruta de enlace o path:
cat /etc/ssl/certs/thawte_Primary_Root_CA.pem | sudo tee -a /etc/postfix/cacert.pem
cat /etc/ssl/certs/TWCA_Root_Certification_Authority.pem | sudo tee -a /etc/postfix/cacert.pem
Te saldrá algo como esto:

LISTO! Todo está configurado. Pero antes de enviar tu primer correo satisfactoriamente, activa postfix con lo siguiente:
sudo service postfix restart
Ahora sí, ya puedes enviar correos desde tu terminal como un auténtico hacker. Prueba con la siguiente línea de comando y ve a ver tu correo!
echo "Hola Mundo!" | mail -s "Testing" TU_EMAIL
Ya para terminar, quiero destacar que me basé en gran parte de este tutorial: Como hice la “Configuración de un servicio de mailing”. También, para solucionar el error de 2FA investigué el siguiente artículo de stackoverflow: Sending email fails when two factor authentication is on for Gmail
Espero que este post te haya servido! Si tuviste problemas no dudes en comentarlo aquí abajo y con gusto te ayudaré a solucionarlo. Recuerda que para triunfar en este sector debes de aprender a solucionar los problemas, no importa cuanto te cueste. Un saludo! 😃
Curso de Introducción a la Terminal y Línea de Comandos 2019