J'ai un serveur de messagerie postfix et il y a un problème que je veux déboguer. Comment puis-je le configurer pour envoyer une copie de chaque e-mail à mon adresse e-mail (en plus de transmettre l'e-mail à ses destinataires)?postfix: envoyer une copie de chaque e-mail à une adresse e-mail donnée
Répondre
J'ai récemment eu ce travail, alors que je partage:
l'envoi de tous les messages sortants envoyés dans des dossiers avec postfix et cyrus imap.
Résumé
Faire postfix envoyer des copies Cci de tous les courriels sortants à un spécial « envoyé » compte de messagerie. Utilisez le tamis sur ce compte spécial pour rediriger tous les e-mails vers le dossier Envoyés associé au compte.
Créer le compte utilisateur de messagerie pour envoyer
La meilleure façon de le faire est de créer un nouveau compte unix pour envoyé, réglage du shell/bin/false pour empêcher quiconque de pouvoir log dans:
host$ sudo useradd sent host$ sudo chsh -s /bin/false sent
Mettre en place imap pour l'utilisateur envoyé
en utilisant cyradm nous créons un ne w boîte aux lettres (c.-à-utilisateur) et donner à cet utilisateur append l'accès à tous nos imap « envoyés » dossiers:
host$ $ cyradm -user cyrus localhost Password: <enter you cyrus user admin password here> localhost> createmailbox user.sent localhost> setaclmailbox user.%.Sent sent append Setting ACL on user.userx.Sent...OK. Setting ACL on user.usery.Sent...OK. . . . Setting ACL on user.userz.Sent...OK. localhost> exit
Créer un script de tamis pour le compte envoyé
Ce script redirige tout le courrier entrant sur le compte envoyé au dossier Envoyé dans la boîte de réception des expéditeurs.
Mon script est appelé sent.sieve et ressemble à ceci:
# Sieve script for sent. If outgoing email is bcc'ed to this account, # this sieve script will redirect it to the sender's Sent folder require ["fileinto"]; if address :is :localpart "From" "userx" { fileinto "user.userx.Sent"; } elsif address :is :localpart "From" "usery" { fileinto "user.usery.Sent"; } elsif address :is :localpart "From" "userz" { fileinto "user.userz.Sent"; }
Vous aurez besoin de mettre dans une entrée pour chacun de vos utilisateurs (userx, Usery, UserZ dans l'exemple ci-dessus). Je n'ai pas été en mesure de trouver une meilleure façon de le faire. Les suggestions sont les bienvenues à [email protected]
Installez le script de tamis comme ceci:
host$ sieveshell localhost -user=sent -a=cyrus Password: <enter you cyrus user admin password here> > put sent.sieve > activate sent.sieve > quit
la cartographie Définir Cci pour postfix
Dans le répertoire Postfix (/ etc/postfix sur debian) créer un fichier appelé bcc_map qui ressemble à ceci:
# copy all locally sent mail to the sent account @yourdomain.com [email protected]
dans un Compile ce hachage postfix fichier à l'aide de:
host$ sudo postmap bcc_map
Ajoutez la ligne suivante à la principale de postfix.fichier de configuration cf:
sender_bcc_maps = hash:/etc/postfix/bcc_map
Et faire postfix reload sa configuration:
hôte $ sudo /etc/init.d/postfix recharger
Test et débogage
Envoyer un certain email et Vérifiez qu'il est copié dans votre dossier Envoyés.
En cas de problèmes, vous devriez vérifier les logs cyrus et postfix (tous enregistrés sur
/var/log/syslog
sur mon hôte debian). Les codes d'accès et les autorisations d'accès incorrects entraînent généralement l'envoi d'un indice aux journaux .
Il suffit d'ajouter [email protected]
dans /etc/postfix/main.cf et redémarrez le serveur Postfix. J'ai ajouté cette ligne dans le bas.
Cela semble vraiment fonctionner. En savoir plus sur always_bcc here
Veuillez ne pas oublier de sauvegarder ce fichier en premier.
http://serverfault.com/questions/407302/how-can-i-configure-postfix-to-retain-copies-of-all-email-sent-through-it a une bien meilleure réponse car il utilise des fonctionnalités fourni par postfix. –