Solution 1 :
Tout d'abord, vérifiez si votre installation de Postfix supporte pcre en saisissant la commande postconf -m
et à la recherche d'une ligne avec pcre
dedans. Une fois que vous avez vérifié que vous disposez de l'assistance pcre, vous pouvez procéder comme suit :
/etc/postfix/login_maps.pcre
:
/^(.*)@example\.org$/ ${1}
En main.cf
:
smtpd_sender_login_maps = pcre:/etc/postfix/login_maps.pcre
Cela devrait fonctionner correctement.
Solution 2 :
L'expression régulière mentionnée dans l'autre réponse correspond à la partie utilisateur de l'adresse e-mail (utilisateur connecté @exemple.org). Voici quelques informations supplémentaires.
Pour utiliser l'adresse e-mail complète comme nom d'utilisateur, utilisez l'expression régulière suivante (par exemple dans /etc/postfix/login_map
):
/^(.*)$/ ${1}
Cela signifie que votre nom d'utilisateur est toujours votre adresse e-mail complète ([email protected] ) - aucun autre nom d'utilisateur existant n'est autorisé à envoyer depuis cette adresse - et vous n'avez pas besoin de mettre à jour un fichier de configuration Postfix supplémentaire à chaque fois que vous ajoutez un utilisateur.
Cela peut être utilisé sur un serveur sur lequel plusieurs domaines sont configurés. Utilisateur [email protected] n'est autorisé à envoyer que depuis cette adresse mais pas depuis [email protected] (utilisateur et e-mail différents, personne différente). Le nom d'utilisateur john.doe serait ambigu dans ce cas.
De plus, selon votre configuration, le paramètre smtpd_sender_login_maps, qui doit pointer vers ce fichier, peut se trouver dans le master.cf (au lieu de main.cf). La documentation officielle de Dovecot contient l'exemple suivant (si vous utilisez SASL/submission) :
submission inet n - n - - smtpd
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
-o smtpd_sasl_security_options=noanonymous
-o smtpd_sasl_local_domain=$myhostname
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o smtpd_sender_login_maps=hash:/etc/postfix/virtual
-o smtpd_sender_restrictions=reject_sender_login_mismatch
-o smtpd_recipient_restrictions=reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject
Dans cet exemple, le paramètre doit être ajusté pour pointer vers le bon fichier et utiliser regex ou (mieux) pcre comme type. Surtout si un fichier appelé "virtuel" est déjà utilisé à d'autres fins (par exemple pour virtual_alias_maps, comme le montre un exemple officiel de Postfix), un autre fichier doit être utilisé pour le mappage de connexion.
De :
smtpd_sender_login_maps=hash:/etc/postfix/virtual
À :
smtpd_sender_login_maps=pcre:/etc/postfix/login_map