Outils du site


Utiliser un relai SMTP externe (FAI bloquants)

Si votre fournisseur d'accès à internet bloque le port smtp (25), vous serez bien embêtés pour envoyer des messages. Au moins deux solutions s'offrent à vous :

  • Changer de FAI ^^
  • Utiliser un relai smtp externe avec identification. Ce dernier peut relayer les messages envoyés par votre serveur. C'est bien évidemment cette situation que nous allons détailler, notamment grâce à l'aide de l'article de PengouinBSD.

Nous supposerons que vous disposez d'un accès par smtp sur un autre serveur (votre fournisseur de mail habituel). Vous envoyez déjà des courriels avec ce dernier à l'aide d'un identifiant et d'un mot de passe. Mettez ces derniers dans un fichier /etc/mail/secrets sous cette forme :

# echo "id_secret utilisateur:motdepasse" > /etc/mail/secrets

Bien sûr, vous aurez remplacé les éléments suivants :

  • “utilisateur” : Nom d'utilisateur à votre compte mail habituel. C'est souvent votre adresse mail.
  • “motdepasse” : Mot de passe pour vous connecter à votre compte mail habituel.
  • “id_secret” : Il s'agit du nom que vous voulez donner à ce relai. C'est un repère. On se servira de ce nom ensuite pour désigner ce relai afin de ne pas avoir à enregistrer vos identifiants secrets dans le fichier /etc/mail/smtpd.conf qui est lisible par tous les utilisateurs du système.

Avant d'aller plus loin, modifiez les permissions sur ce fichier afin que seul smtpd puisse le lire et root le modifier :

# chmod 640 /etc/mail/secrets
# chown root:_smtpd /etc/mail/secrets

Ensuite, modifiez le ficher /etc/mail/smtpd.conf comme ceci afin d'indiquer d'envoyer les messages à l'aide de ce service externe :

...
table secrets "/etc/mail/secrets"
...
listen on all...
...

action "relay" relay host smtp+tls://id_secret@smtp.exemple.com \
		auth <secrets> mail-from "@chezmoi.tld"

...
match from any for any action "relay"

Un peu d'explications ne feront pas de mal, surtout pour que vous sachiez quoi modifier :

  • table secrets : On indique où se situe le fichier contenant les identifiants secrets pour joindre le relai smtp définit plus haut.
  • action “relay” relay … : on définit l'action qui permet d'envoyer les mails par le biais du serveur smtp externe qui sert de relai. Il faut ici modifier “id_secret” par le repère définit plus haut. Ainsi, on n'écrit pas directement vos identifiants, c'est plus sûr puisque le fichier /etc/mail/smtpd.conf est lisible par tous les utilisateurs de votre serveur. Vous devez aussi changer le nom de domaine du serveur relai smtp.exemple.com.
  • smtp+tls : il s'agit du protocole utilisé pour communiquer avec le relai. Ça peut être smtp pour une session smtp normale avec STARTTLS si possible, smtp+tls pour une utilisation de STARTTLS obligatoire, smtp+notls si l'identification n'est pas chiffrée ou bien smtps pour une connexion SSL. À vous de choisir ce que votre fournisseur propose (espérons smtp+tls qui est plus sûr).
  • auth <secrets> : on utilise la table contenant les identifiants secrets.
  • mail-from “@chezmoi.tld” : On précise le nom de domaine de votre serveur pour que le courriel soit bien marqué comme venant de votre serveur et non du relai.

Pour finir, rechargez smtpd pour profiter de cette nouvelle configuration :

rcctl restart smtpd

Pour un autre exemple, vous pouvez consulter le manuel de configuration pour smtpd.