Utiliser le port 587 avec sendmail

J'utilise sendmail pour envoyer des mails en utilisant un server de messagerie interne. Mais actuellement le port 25 est bloqué pour des raisons de security.

Je voudrais savoir s'il existe un moyen de spécifier le numéro de port dans l'utilitaire sendmail. J'essaie de faire usage du port SMTP-MSA sécurisé 587 comme une alternative en supposant que je pourrais get ce port ouvert.

Je n'ai pas pu find quoi que ce soit dans les pages man pour sendmail. Y a-t-il un autre utilitaire qui pourrait le faire?

Sauf si explicitement configuré autrement, le courrier sera transmis sur le port 25.

Vous pouvez router le courrier en utilisant d'autres ports ou même d'autres protocoles que le protocole SMTP, mais cela ne fonctionnera généralement que sur votre propre réseau. Les servers de mails de vos destinataires n'accepteront probablement que les e-mails entrants via SMTP sur le port 25.

Par exemple, lorsque je configure sendmail pour écouter le port 587, il accepte généralement uniquement les messages entrants sur ce port lorsque l'user s'est authentifié.

DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea') 

La plupart des réseaux qui restreignent le trafic SMTP entrant et / ou sortant (une pratique courante pour les FAI et les réseaux d'entreprise pour empêcher les courriers électroniques ouverts, les spams et autres abus) fournissent des servers relais, ce qui vous permet d'envoyer du courrier sans ressortingction. Les servers relais peuvent vérifier le contenu (virus, spam) ou appliquer des politiques (ajout de la clause de non-responsabilité standard, archivage des messages pour conformité, ressortingction des destinataires), etc.

Si vous disposez d'un server de relais dans sendmail qui s'appelle smarthost et configuré dans

 # sendmail.mc define(`SMART_HOST',`relay.example.com`)dnl 

Si votre server relais écoute sur un port 587 qui devient:

 # sendmail.mc define(`SMART_HOST',`relay.example.com`)dnl define(`RELAY_MAILER',`esmtp')dnl define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl 

L'hypothèse est que sendmail transmet tout votre trafic de courrier électronique au relais qui transporte les messages vers les destinataires prévus et le server relais ne nécessitant pas d'authentification.

Vous pouvez affiner votre routing d'e-mail avec le mailertable.


Pour router certains domaines de courrier électronique vers un port TCP distant et envoyer des courriers électroniques pour d'autres domaines à un autre, il faut modifier le file sendmail.cf pour configurer un nouveau mailer. Copiez les parameters de l'expéditeur esmtp existant et ajoutez un numéro de port:

  # sendmail.cf # <snip> Mesmtp587, P=[IPC], F=mDFMuXa, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990, T=DNS/RFC822/SMTP, A=TCP $h 587 Mesmtp2525, P=[IPC], F=mDFMuXa, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990, T=DNS/RFC822/SMTP, A=TCP $h 2525 

le canal de transport esmtp587 va maintenant livrer au port 587 au lieu de la valeur par défaut 25 ou, de même, à 2525 ou n'importe quel autre port que vous spécifiez.

Puis dans votre mailertable:

  example.com esmtp587:example.com example2.com esmtp2525:example2.com 

La ligne ci-dessus permettra à sendmail de searchr les loggings MX pour example.com, si un seul server smtp (relais) pour example.com supporte le port non-par défaut, la syntaxe deviendra:

  example.com esmtp587:[smtp.example.com] 

Les parenthèses indiquent à sendmail d'ignorer les loggings MX possibles pour smtp.example.com et de router tout le courrier pour @ example.com vers smtp.example.com:587.

Entrées de file sendmail.mc:

 dnl Modify relay mailer to make it connect to port 587 instead of 25 define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl dnl Define relay for non local email dnl Use [] to disable looking up for MX records define(`SMART_HOST', `relay:[name.of.smart.host]')dnl 

FAQ Sendmail 3.39: Comment puis-je envoyer en utilisant un autre port?

PS Vous pouvez utiliser FEATURE (mailertable) pour spécifier différents relais pour des domaines de messagerie non locaux spécifiques.