Aplicar un relay de protocolo SMTP para algunos clientes

Algo que me gusta siempre aplicar en los servidores que administro para web hosting, es poder configurar un relay de correos, ya que es posible que la IP que me asignen, puede estar en lista de spam y mas de un cliente es posible que tenga su propio servicio de entrega de correos, las cuales usar el servicio de smtp del mismo servidor, estaria por demas.

Esto puede ser un poco tedioso, ya que usar servicios de terceros, implica siempre tener la clave API y este es un potencial problema de seguridad que los mismos clientes pueden cometer, el cual si necesitan resetear la contraseña de la clave API, tendran que hacerlo para cada cuenta de correo donde se configure o mejor dicho en cada dispositivo donde se encuentre instalado el servicio de correo.

Por suerte para mi, existe un metodo para aplicar un servicio de relay para mis clientes, asi ellos pueden enviar sus correos, directos al servidor del hosting y el mismo servidor se encargara de enviar el correo al servicio de entrega del mismo cliente.

Pero vamos por el relay smtp, que es?

Un relé SMTP (Simple Mail Transfer Protocol) actúa como intermediario en el proceso de envío de correo electrónico. Piense en él como una estación de paso que toma su correo electrónico y lo reenvía a su destino final.

Aquí un desglose de cómo funciona un relé SMTP:

  1. Usted envía un correo electrónico: Cuando redacta un correo electrónico y lo envía desde su programa de correo electrónico (como Outlook o Gmail), su dispositivo se conecta a un servidor SMTP. Este servidor SMTP inicial generalmente es provisto por su proveedor de correo electrónico (Gmail, Yahoo, etc.) o el servidor de correo electrónico de su empresa.
  2. El servidor SMTP inicial se conecta al relé SMTP: El servidor SMTP inicial verifica la dirección de correo electrónico del destinatario y determina si necesita un relé para entregarlo. Si el destinatario usa un dominio de correo electrónico diferente (por ejemplo, usted envía un correo electrónico de Gmail a un usuario de Hotmail), entonces se necesita un relé SMTP para entregar el correo electrónico a los servidores de Hotmail.
  3. El relé SMTP reenvía el correo electrónico: El servidor SMTP inicial se conecta al relé SMTP apropiado según el dominio del destinatario. El relé SMTP actúa como un intermediario, tomando el correo electrónico y reenviándolo a los servidores de correo electrónico del destinatario.
  4. El correo electrónico llega al servidor del destinatario: El relé SMTP se conecta al servidor de correo electrónico del destinatario y entrega el correo electrónico. Una vez que el servidor del destinatario acepta el correo electrónico, se almacena para que el destinatario pueda acceder a él.

¿Por qué se utilizan los relés SMTP?

Existen varias razones por las que se utilizan los relés SMTP:

  • Entrega de correo electrónico a diferentes dominios: Como se mencionó anteriormente, los relés SMTP son necesarios para entregar correos electrónicos a usuarios con diferentes proveedores de correo electrónico.
  • Seguridad: Los relés SMTP pueden ayudar a mejorar la seguridad del correo electrónico mediante el filtrado de spam y virus.
  • Limitar el número de conexiones salientes: Los servidores de correo electrónico corporativos a menudo utilizan relés SMTP para limitar el número de conexiones salientes que cada dispositivo en la red puede realizar.
  • Flujo de correo electrónico confiable: Los relés SMTP pueden ayudar a garantizar un flujo de correo electrónico confiable al proporcionar rutas alternativas para la entrega de correo electrónico en caso de que un servidor esté inactivo.

Y la configuracion para tener un servicio asi, empieza en el servicio de postfix, el cual utilizo para mis servidores.

El primer archivo a configurar se encuentra en esta ruta: /etc/postfix/main.cf

Y al final debes agregar estas lineas:

# outbound relay configurations smtp_sender_dependent_authentication = yes sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay smtp_sasl_auth_enable = yes smtp_sasl_security_options = noanonymous smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtpd_forbid_bare_newline = yes smtpd_forbid_bare_newline_exclusions = $mynetworks shlib_directory = no

Luego el siguiente archivo a modificar, esta en la misma ruta, pero es sender_relay.

Aqui deberas colocar el siguiente formato:

@dominio.com smtp.servicio.com:puerto
@dominio2.com smtp.servicio2.com:puerto

Luego de crear y modificar este archivo y colocar todos los dominios que quieres que usen su propio servicio de envio de correos.

Ahora el siguiente archivo a crear o modificar seria: sasl_passwd con el siguiente formato:

@dominio.com usuarioapi:claveapi @dominio2.com usuarioapi2:claveapi2

Ahora una vez tenemos estos archivos y parametros, procedemos a ejecutar los siguientes comandos en la consola ssh:

postmap /etc/postfix/sasl_passwd
postmap /etc/postfix/sender_relay

Luego procedemos a reiniciar el servicio de correo postfix:

sudo systemctl restart postfix