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:
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 = yessmtp_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.
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.
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 postfixrestart
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! 😃
Funciono correctamente.
Lo tuve que hacer dos veces debido a que la primera vez en algún punto falle (no se cual xD), así que hay que hacerlo con calma y analizando cada comando.
Gracias 😃
Hermano, me sirvió demasiado tu post. Llevo más de dos horas intentando hacer este ejercicio y no me salía. Ahora, después de seguir tus pasos logré terminarlo y todo funcionó de maravilla. Incluso me daba miedo ir a revisar mi correo por temor a que no me hubiera llegado nada pero todo resultó bien. De verdad, muchas gracias.
Muy confuso, no consigo en google autorizar una app ni generar el código.
Te repito que sólo podrás entrar al enlace para autorizar una app si tienes la autenticación en dos pasos activada. Tal vez tu no la tengas.