• Serveurs
  • [Discussion] Installer un serveur de mail avec Postfix et Dovecot

Tu peux utiliser un fichier contenant les adresses virtuelles (virtual alias table) que tu souhaites rediriger.
# /etc/postfix/main.cf

virtual_alias_maps = hash:/etc/postfix/virtual
Puis :
# /etc/postfix/virtual

root root@localhost
clamav root@localhost
Ensuite il faut mettre à jour la table et redémarrer postfix :
postmap /etc/postfix/virtual
service postfix restart
Plus d'info ici : http://www.postfix.org/virtual.5.html
OK merci. Du coup pour virtual_alias_maps j'obtiens :
# /etc/postfix/main.cf

virtual_alias_maps = hash:/etc/postfix/virtual, mysql:/etc/postfix/mysql-virtual-alias-maps.cf
Test :
mail -s Test root
=> Extrait de log :
Feb 23 18:17:15 domain postfix/pickup[30310]: 4CAEC2460A8A: uid=0 from=<root>
Feb 23 18:17:15 domain postfix/cleanup[30368]: 4CAEC2460A8A: message-id=<20150223171715.4CAEC2460A8A@domain.tld>
Feb 23 18:17:15 domain opendkim[17453]: 4CAEC2460A8A: DKIM-Signature header added (s=mail, d=domain.tld)
Feb 23 18:17:15 domain postfix/qmgr[30311]: 4CAEC2460A8A: from=<root@domain.tld>, size=432, nrcpt=1 (queue active)
Feb 23 18:17:16 domain postfix/local[30372]: 4CAEC2460A8A: to=<root@localhost>, orig_to=<root>, relay=local, delay=1.1, delays=0.09/0.02/0/1, dsn=2.0.0, status=sent (delivered to command: procmail -a "$EXTENSION")
Feb 23 18:17:16 domain postfix/qmgr[30311]: 4CAEC2460A8A: removed
Petit problème : au final procmail stocke ça dans /var/mail/nobody. Pourquoi "nobody" et pas "root" ?
Parce qu'il connait pas cette adresse virtuelle, tu dois rediriger vers une adresse existante ou créer un lien symbolique vers la boite de root. Il me semble que procmail est lancé avec l'utilisateur nobody donc c'est pour ça qu'il prend se nom là, à confirmer.
OK. Bon ça me semble pas simple cette gestion des mails des users système... Je laisse tomber pour l'instant.
Merci de ton aide Hardware.

Sinon pour info, j'ai également été étonné de la maturité de Rainloop pour son jeune âge. En cherchant un peu il se trouve que c'est un ex-employé d'Afterlogic qui a fork leur webmail et qui a été viré, plus d'infos ici : https://github.com/RainLoop/rainloop-webmail/issues/450#issuecomment-74540148
Sympa je connaissais pas l'histoire derrière Rainloop. Bon d'après de ce que j'ai compris, c'est Usenko Timur qui est l'auteur principal de la librairie derrière Rainloop (MailSo) et il avait mis la licence MIT donc AfterLogic n'a donc aucun droit dessus, apparement il a fait ça pendant son temps libre. Après moralement c'est peut-être discutable puisque il a surement utilisé, même un peu, les connaissances accumulées et le R&D de son ancien job. Mais sur ce point là c'est bien la licence MIT qui devrait lui éviter d'éventuelles poursuites.
Bonjour,

J'ai effectué le tuto et tout semble fonctionner correctement mis à part le fait que je ne puisse qu'envoyer des mails et non en recevoir.
L'erreur suivante est envoyé par le Mail Delivery Subsystem.
Delivery to the following recipient failed permanently: 

contact@domain.ltd

Technical details of permanent failure: 
Google tried to deliver your message, but it was rejected by the server for the recipient domain domain.ltd by mail.ip.serveurkimsufi. [XXX.XXX.XX.XX]. 

The error that the other server returned was: 
553 sorry, that domain isn't allowed to be relayed thru this MTA (#5.7.1) (mail138.ha.ovh.net, smtpauth: no) 
Même problème lorsque j'envoi un mail à contact@ip.serveurkimsufi sauf que cette fois-ci, l'adresse en cause est redirect.ovh.net.

Je penche pour un problème de configuration DNS au niveau du MX mais je ne vois pas trop comment régler le problème...

Merci d'avance.
Tu peux me passer ton nom de domaine s'il te plait ?
Tiens j'avais le même probleme.
Tiens j'avais le même probleme.
Pour moi c'est un problème DNS, l'erreur est très clair sur le problème :
553 sorry, that domain isn't allowed to be relayed thru this MTA (#5.7.1) (mail138.ha.ovh.net, smtpauth: no) 
Dans la zone de ton domaine, tu as du laisser les MX d'ovh ( mx0.ovh.net...etc ) par défaut, donc lorsque tu envoies un message via Gmail, Google contacte les MTA d'OVH, sauf que le problème c'est que serveurs d'OVH sont pas configurés pour prendre en charge ton domaine (isn't allowed to be relayed) donc tu ne reçois rien.

Dans ta zone, tu dois configurer correctement les enregistrements MX comme dans le tuto :
tondomaine.tld. IN  MX  10 hostname.tondomaine.tld.

# Facultatif, MX de fallback au cas où ton serveur tombe
tondomaine.tld. IN  MX  50 ns0.ovh.net.
Mon nom de domaine est pierrick.tk et pourtant, la configuration de BIND semble être la bonne.
Petite proposition de fix pour le tuto : distinguer les dossiers "home" et "mail" des utilisateurs virtuels, comme préconisé dans le lien suivant http://wiki2.dovecot.org/VirtualUsers/Home

Pourquoi ? En jouant avec Sieve, j'ai commencé à voir des dossiers non souhaités s'afficher dans mon webmail.

Le fix consiste à ajouter "/mail" en fin de mail_location (ne pas oublier d'adapter le crontab de SpamAssassin) :
# vi /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:/var/mail/vhosts/%d/%n/mail
Pour déplacer les données de mes utilisateurs existants j'ai utilisé les commandes suivantes (depuis chaque dossier utilisateur) :
mkdir -m 700 mail
chown vmail mail
find . -maxdepth 1 -mindepth 1 -not -name sieve -not -name mail -not -name ".dovecot.*" -print0 | xargs -0 mv -t mail/
Bonne idée, je vais modifier le tuto.
Petite question.
Y a pas moyen de renvoyer des emails automatiques quand une personne nous envoie un mail sur un adresse.
Par exemple no-reply@mondedie.fr envoyer un mail comme quoi il faut pas envoyer de mail ici ^^

Si je fais mon petit feedback
- mise en place d'un mot de passe pour postfixadmin (dans nginx) ?
- le compte mail admin@domain.tld n'est pas créé.
- mauvais lien https://postfixadmin.domain.tld/login.php
- dire d'installer php5-imap

Bon sinon le tuto est au top, très bien expliqué, très clair, tu cites les sources etc
20/20 😀
Salut Hardware ça roule ?

Dis moi je viens de me faire bannir des serveurs d'Orange à l'instant...lol, voici ce que j'ai en retour :
####################################################################
# THIS IS A WARNING ONLY.  YOU DO NOT NEED TO RESEND YOUR MESSAGE. #
####################################################################

Your message could not be delivered for more than 4 hour(s).
It will be retried until it is 5 day(s) old.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

                   The mail system

<dwag@wanadoo.fr>: delivery temporarily suspended: host
    smtp-in.orange.fr[80.12.242.9] refused to talk to me: 421 mwinf5c59 ME Trop
    de connexions, veuillez verifier votre configuration. Too many connections,
    slow down. OFR005_104 [104]
J'ai suici ces conseils sur cette page, tu en penses quoi ? En attendant j'ai couper mon script d'emailing parceque la je recevais pleins d'erreurs, j'espère que postfix ma me nettoyer ma queue corectement.
En fait j'ai un cron PHP qui tourne et qui me permet d'envoyer mes emailings, j'ai une grosse base d'email et je réalise des campagnes dessus. Que me conseille-tu en termes de fréquences d'envoie. Là pour le moment mon script tourne toutes les 30 mins et envoie 2 000 emails à chaque fois avec une latence de 1sec entre chaque envoie. Quels seraient pour toi la fréquence idéale afin que la queue de postfix n'explose pas constamment ? Merci
Salut HArdware concernant ton tableaux pour faire les tests de réception chez microsoft, est-ce que je peux le remplir aussi?
J'utilise un raspberry pi b+, les mails sont reçu mais dans les spams.

Si oui j'indique quoi dans la case : "Hebergeur/offre" ?
Magicalex wrote: Si je fais mon petit feedback :
- mise en place d'un mot de passe pour postfixadmin (dans nginx) ? ça dépend des besoins de l'utilisateur, je ne fait rien ce sur point là.
- le compte mail admin@domain.tld n'est pas créé. Ok, j'ai modifié le tuto pour que ça soit plus clair sur ce point là.
- mauvais lien https://postfixadmin.domain.tld/login.php Ok, corrigé
- dire d'installer php5-imap Ok, ajouté
Merci pour le feedback.
Magicalex wrote: Y a pas moyen de renvoyer des emails automatiques quand une personne nous envoie un mail sur un adresse.
Par exemple no-reply@mondedie.fr envoyer un mail comme quoi il faut pas envoyer de mail ici ^^
Tu peux utiliser une règle sieve pour renvoyer une réponse automatique ou utiliser un plugin d'auto-reply. Le plus simple c'est de faire quelque chose comme ça :
require "vacation";
vacation :days 3600 :addresses ["no-reply@mondedie.fr"]
"Merci de ne pas répondre sur cette adresse mail.";
Puis de modifier la configuration de Dovecot :
plugin {
  sieve_vacation_min_period = 1h
  sieve_vacation_default_period = 7d
  sieve_vacation_max_period = 10y
}
Bon en faisant comme ça tu détournes un peu l'usage du module "vacation", mais bon ça devrait marcher, à toi de voir.

@paftek : J'ai ajouté ta suggestion

@momos73 : Pour moi la solution fournie dans le lien que tu as donné est la bonne, après au niveau de la fréquence je sais pas du tout, ça dépend de la politique appliquée sur les serveurs d'Orange.

@Gravefield : Tu peux mettre "Auto-hébergement"
J'ai pensé à un truc sur les problèmes de SPAM de Microsoft, si on prendrais un certificat SSL valide est-ce que ça ne corrigerait pas le problème par hasard ? Il se peut que Microsoft vérifie désormais la validation du certificat SSL ?

T'en pense quoi ?
C'est possible que ce soit un critère oui. De toute manière on peut pas avoir confiance dès lors que le certificat est auto-signé, sauf si tu es le créateur du certificat ou que tu connais son empreinte.
J'ai fais une demande de certificat à Gandi apparemment c'est offert avec un nom de domaine par contre tu pourrais m'aiguiller un peu sur la configuration à appliquer sur apache je suis un peu pomé là. Merci
Tu as juste à remplacer les certificats du tuto par ceux fournis par Gandi.
Hello,

Dis Hardware, est-ce que tu as testé le plugin pour Rainloop qui autorise le changement de pass directement dans l'interface de rainloop sans forcément passer par Postfix (utile pour les clients)

Merci
Joss47 wrote:Hello,

Dis Hardware, est-ce que tu as testé le plugin pour Rainloop qui autorise le changement de pass directement dans l'interface de rainloop sans forcément passer par Postfix (utile pour les clients)

Merci 😉
Je l'utilise pour mondedie le plugin
Ils expliquent comment l'installer dans ce topic
https://github.com/RainLoop/rainloop-webmail/issues/251
Magicalex, top je trouvais pas justement une doc !

Sinon, est-ce qu'il y a possibilité de pouvoir configurer le serveur mail pour utiliser l'iMAP et le POP ?
Si un jour mon serveur crash et je ne peux pas le récupérer (misère) j'ai tous les mails qui seront perdus à jamais en IMAP, au contraire du POP

Merci d'avance si quelqu'un peut m'aider sur le sujet !
Joss
Je préfère te prévenir avant, Dovecot prend en charge le protocol pop3 mais n'est pas du tout optimisé pour, plus d'info : http://wiki2.dovecot.org/POP3Server De plus, tu peux tout à fait garder une copie locale de tes mails avec IMAP.

Sinon pour activer POP3 :
# /etc/dovecot/dovecot.conf

protocols = imap pop3 lmtp
# /etc/dovecot/conf.d/10-master.conf

service imap-login {

  ...

}

service pop3-login {

  inet_listener pop3 {
    port = 110
  }

  inet_listener pop3s {
    port = 995
    ssl = yes
  }

} 

service imap {

}

service pop3 {

} 

...
Facultatif, permet de modifier quelques paramètres liés à POP3 :
# /etc/dovecot/conf.d/20-pop3.conf

protocol pop3 {

  # mail_max_userip_connections = 10
  # mail_plugins = $mail_plugins quota

} 
service dovecot restart
Cool, merci Hardware !
Je vais voir du coup si je mets le pop3 ou non !

Quand tu dis sauvegarder une copie locale des mails en IMAP, tu parles de les stocker sur l'ordi, donc créer un dossier dans mon client mail et sauvegarder les mails à cet endroit ?
Salut Hardware !

Comme je te l'es dit par MP, j'ai un petit soucis sur ton tutoriel.

En effet, lorsque je souhaite configurer thunderbird, cela me renvoi "Thunderbird n'a pas réussi à trouvé les paramètre de votre compte courrier "

Une idée ??
Ne marche pas non plus et lorsque je regarde mes fichier de log
Cela m'indique :

dovecot : imap-login : Fatal : Can't load ssl_cert : There is no valide PEM certificate
dovecot : master : Error : service (imap-login) : command startup failded, throttling for 32 secs


Serait-il possible que le problème viennent du fait que lorsque j'ai généré les certificat ssl je n'ai pas mis le FQDN de mon server mail ?
Et par consequent est-ce que je peux regénérer les certificats par dessus les autres ?
oui tu peut les refaire je pense ta du louper un truc a ce niveau la peut etre
Toujours le même problème ^^"
J'ai re-taper les commandes pour re-générer les certificats avec les bonnes informations
J'ai effacé les CAroot.crt / mailserver.crt / mailserver.key des dossiers certs/ et private/
J'ai déplacer ceux préalablement généré et j'ai retaper les 2 commande liés au Pem ( d'ailleurs c'est quoi ?)

Si quelqu'un à une solution je prend
Est-il possible de gérer différents domaine sur un même serveur de mail ? Je m'explique, je possède deux nom de domaine qui pointent tous les deux sur un seul et même serveur. Je voudrais pouvoir configurer une adresse mail contact@domain1.tld et contact@fomain2.tld. Pour le moment j'ai bien configurer un domaine et ça fonctionne bien.
J'ai bien vérifier les fichiers de config, je ne voit pas d'erreur.
Je vais copier/coller t'es fichiers de conf et je vais les modifier avec mon domaine pour voir si sa marche je te tiens au jus.
Alors après avoir retaper tous les fichiers de config (à la main car pas de copier coller)...
Je n'arrive plus à me connecter en telnet ^^" -> Connection closed by foreign host
Une idée Hardware ? ^^"
Il vaut mieux copier/coller puis modifier que de réécrire à la main, c'est source d'erreur. Il me faut plus d'information si tu veux que je t'aide.
Bah le problème c'est que je suis sur mac avec vmware fusion et que je n'arrive pas à installer les vmware tools (oui je suis sous VM)

Alors pour te donner plus d'infos j'ai modifier tous les fichiers de config pour coller au mieux avec les tiens.

J'arrive a acceder a postfix avec une autre machine virtuel à distance via l'adresse IP du serveur mail.
Ce que je remarque actuellement c'est lorsque je redemarre postfix via la ligne de commande j'ai des erreurs :
/usr/sbin/postconf : warning /etc/postfix/main.cf : unused parameter : smtp_tls_session_cache_databse = btree:${data_directory}/smtp_scache

Et lorsque je tape telnet localhost 25
Trying :: 1...
Trying 127.0.0.1
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.