Configurar Postfix para emplear un relay SMTP de terceros es una solución común cuando se enfrentan restricciones en los puertos 25 y 465. A continuación, se detallan los pasos generales que se deben seguir para lograrlo:
1. Elegir un proveedor de relay SMTP: Selecciona un proveedor de servicios de relay SMTP de confianza, como SendGrid, Mailgun, Mailchannels o Gmail. Crea una cuenta en el proveedor y obtén las credenciales necesarias para enviar correos a través de su servicio.
2. Instalar Postfix:
- Para sistemas basados en Debian/Ubuntu:
```bash
sudo apt-get update
sudo apt-get install postfix
```
- Para sistemas basados en CentOS/RHEL:
```bash
sudo yum install postfix
```
Durante la instalación, elige la opción "Sitio de Internet" y configura el sistema de correo saliente.
3. Configurar Postfix para utilizar el relay SMTP:
- Edita el archivo de configuración principal de Postfix:
```bash
sudo nano /etc/postfix/main.cf
```
- Agrega o modifica las siguientes líneas para configurar el relay SMTP (asegúrate de reemplazar los valores entre corchetes con la información real):
```plaintext
relayhost = [smtp.example.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
```
4. Crear el archivo de contraseñas para autenticación:
- Crea un archivo `/etc/postfix/sasl_passwd` para almacenar las credenciales de autenticación del relay SMTP:
```bash
sudo nano /etc/postfix/sasl_passwd
```
- Agrega la siguiente línea, reemplazando `<smtp_server>`, `<username>` y `<password>` con la información real:
```plaintext
[smtp.example.com]:587 username:password
```
- Guarda el archivo y luego ejecuta los siguientes comandos para generar el archivo hash y protegerlo:
```bash
sudo postmap /etc/postfix/sasl_passwd
sudo chown root:root /etc/postfix/sasl_passwd*
sudo chmod 600 /etc/postfix/sasl_passwd*
```
5. Recargar la configuración de Postfix:
- Después de realizar los cambios, recarga la configuración de Postfix para aplicarlos:
```bash
sudo systemctl reload postfix
```
6. Probar el envío de correos:
- Envía un correo de prueba utilizando el comando `mail` o `sendmail` en tu servidor para verificar que los correos estén siendo reenviados correctamente a través del relay SMTP:
```bash
echo "This is the body of the email" | mail -s "This is the subject line" admin@test.com
```
7. Supervisar el registro de correo para detectar posibles problemas:
```bash
tail -f /var/log/mail.log
```
NOTA: Si el proveedor bloquea los puertos 25 y 465, es necesario cambiar los puertos por los siguientes: 2525, 587.