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

Non ce n'est pas grave, j'ai la meme chose avec online et ca marche super bien. J'ai déjà eu une réponse je ne sais plus trop où.
par contre depuis que j'ai fais l'installation de d'OpenDKIM, je ne peux plus envoyé de mail et pourtant dans les test j'avais exactement ce qu'il fallait.
un problème de propagation dns ? Je dois attendre ?
Soit faut attendre la propagation des DNS (que tu peux check ici : https://www.whatsmydns.net/)

Soit une erreur dans la configuration d'openDKIM (j'avais fait une erreur moi aussi et impossible d'envoyer des mails).

Mais l'idéal serait que tu post ici ce que tu as comme erreur pour bien l'identifier.
Envoies de mail résolu,

il y avait effectivement une erreur dans un fichier de config de DKIM.
J'obtient 9,7 pour le moment.

Par contre je ne peux pas recevoir.
Recipient not found
L'adresse de messagerie que vous avez entrée est introuvable
Mais je n'ai pas non plus accès à mes sous domaines definis chez mon register (postfixadmin et rainloop).
Pourtant j'ai fais la déclaration chez mon register.

mon fichier de rutorrent.conf
server {
        listen 80 default_server;
        listen 443 default_server ssl;
        server_name domain.tld;

        index index.html index.php;
        charset utf-8;
        client_max_body_size 20G;

        ssl_certificate /etc/nginx/ssl/server.crt;
        ssl_certificate_key /etc/nginx/ssl/server.key;

        access_log /var/log/nginx/rutorrent-access.log combined;
        error_log /var/log/nginx/rutorrent-error.log error;

        error_page 500 502 503 504 /50x.html;
        location = /50x.html { root /usr/share/nginx/html; }

        auth_basic "seedbox";
        auth_basic_user_file "/etc/nginx/passwd/rutorrent_passwd";

        location = /favicon.ico {
                access_log off;
                return 204;
        }
## début config rutorrent ##
        location ^~ /rutorrent {
            root /var/www;
            include /etc/nginx/conf.d/php;
            include /etc/nginx/conf.d/cache;

            location ~ /\.svn {
                    deny all;
            }

            location ~ /\.ht {
                    deny all;
            }
        }

        location ^~ /rutorrent/conf/ {
                deny all;
        }

        location ^~ /rutorrent/share/ {
                deny all;
        }
        ## fin config rutorrent ##

## début confi root ##
        location ^~ / {
            root /var/www/domain;
            include /etc/nginx/conf.d/php;
            include /etc/nginx/conf.d/cache;
            satisfy any;
            allow all;
        }
        ## fin config root ##

## début confi postfixadmin ##
        location ^~ /postfixadmin {
            root /var/www;
            include /etc/nginx/conf.d/php;
            include /etc/nginx/conf.d/cache;
        }
        ## fin config postfixadmin ##


## début confg rainloop ##
        location ^~ /rainloop {
            root /var/www;
            include /etc/nginx/conf.d/php;
            include /etc/nginx/conf.d/cache;
        }
        ## début config rainloop ##
fichier de config postfixadmin
server {
   listen 80;
   server_name     postfixadmin.domain.tld;
   root            /var/www/postfixadmin;
   index           index.php;
   charset         utf-8;

   location / {
      try_files $uri $uri/ index.php;
   }

   location ~* \.php$ {
        include       /etc/nginx/fastcgi_params;
        fastcgi_pass  unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   }
}
fichier config rainloop
server {
   listen 80;
   server_name     webmail.domain.tld;
   root            /var/www/rainloop;
   index           index.php;
   charset         utf-8;

   location ^~ /data {
      deny all;
   }

   location / {
      try_files $uri $uri/ index.php;
   }

   location ~* \.php$ {
        include       /etc/nginx/fastcgi_params;
        fastcgi_pass  unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   }
}
Il y a forcement un souci quelque part.
Déjà je peux dire qu'il manque un } à la fin de ton fichier de conf rutorrent. Et je vois pas pourquoi tu as des éléments de configuration de rainloop et postfixadmin dans le rutorrent.conf. Je ne crois pas qu'il faille en mettre dans le tuto ??

Et ensuite pour ton fichier rainloop, si tu as mis en server_name webmail.tondomaine.tld et que sur ta zone dns tu as mis rainloop.tondomaine.tld c'est sûr que tu n'y aura pas accès
arf, le fichier config rutorrent, j'ai oublié de coller un morceau.
j'ai enlever les lignes concernant posftixadmin et rainloop.

Je vais voir ce qu'il se passe, parce que postfixadmin fonctionne en sous domaine.

J'ai corrigé le webmail en rainloop dans le rainloop.conf

les fichier de conf sont les mêmes excepté pour
location ^~ /data {
      deny all;
   }
dans la config de rainloop.

Ensuite je verrai pourquoi la réception de mail marche pas.

PS: le CNAME
email.secureserver.net
et les MX
mailstore1.secureserver.net
et
smtp.secureserver.net
qui sont dans mon register par défaut ne risque pas de faire interférence ?
Ben normalement ça devrait être bon. Je résume, en gros tu peux envoyer des emails mais pas en recevoir c'est ça ?

Et la ton accès à rainloop est ok ?

Sinon pour les champs MX je pense qu'ils peuvent gêner oui. Mais à confirmer par quelqu'un d'autre je ne suis pas sûr.
Oui, c'est ça, je peux envoyé, mais pas recevoir.

et pour rainloop, ça ne fonctionne toujours pas. Je ne comprends pas pourquoi postfixadmin marche et pas lui.
pour les MX, je vais les suprimer, je trouves ca bizarre d'avoir plusieurs MX. Mais les noter ailleur.
Vérifie la propagation des dns pour voir si déjà ça c'est ok : https://www.whatsmydns.net/

Après essaye de t'envoyer un mail, et en même temps surveille les logs de mail.log
la propagation sur arcenik.domain.tld est finie.
et comme tous les CNAME redirige vers cette adresse ça devrait être bon normalement.

Je dois taper quel ligne de commande pour voir les log de mail.log.1 ?
Il faut impérativement supprimer le MX définit par défaut par ton registrar, sinon tu risques d'avoir des surprises au niveau de la réception de tes emails.

Il faut mettre un enregistrement MX qui pointe vers ton serveur de mail pour que les autres serveurs de mail saches à qui adresser le message. Si tu as plusieurs entrées MX dans ton fichier de zone avec la même priorité, genre le MX par défaut et le MX qui pointe vers ton serveur, tu vas te retrouver dans un cas de Round-robin, un coup les mails vont être envoyés sur ton serveur, puis sur les serveur de ton registrar, puis de nouveau sur ton serveur...etc haha
Bon voilà, j'ai viré les infos de mon register.
Je suppose qu'il faut attendre les tout se mettent à jour ?

pour le moment j'ai toujours un message:
The account or domain may not exist, they may be blacklisted, or missing the proper dns entries.
Je suis largué là, je comprends pas trop d'où vient le problème.
voilà mes entrée chez mon register. Il me semble que tout est bon non ?


Et pour mon problème de sous domaine rainloop, tu as une idée hardware ?

en tout cas déjà merci beaucoup pour votre aide et encore bravo pour le tuto.
Toujours pas accès à rainloop.tondomaine.tld ?? Vérifie que la propagation soit ok (même si ton arcenik est bien propagé, par forcément le CNAME sur rainloop)
Ouep, tout est au vert sur whatsmydns pour rainloop et pour postfixadmin

Par contre le mail.domaine.tld est tout en rouge.
Pour rainloop tu dois avoir un problème au niveau de ton vhost, re-vérifie la config de nginx :
service nginx configtest
Dans l'interface de ton registrar, change le type de l'enregistrement du sous-domaine "mail" en passant de CNAME à A.

EDIT : Ah oui aussi, il ne faut surtout pas oublier le point à la fin de l'enregistrement MX :
@                   IN                MX          10       mail.domain.tld.
pour rainloop:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Mon nginx.conf:
#Configuration générale
#Utilisateur
user www-data;
#Nombre de process
worker_processes auto;
#Fichier du processus
pid /var/run/nginx.pid;
#Gestion des connexions
events { worker_connections 1024; }
#Gestion du coeur http
http {

        #Options pour l'encoding et le type
        include /etc/nginx/mime.types;
        default_type  application/octet-stream;
        charset UTF-8;

        log_format vhosts '$host $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"';

        access_log /var/log/nginx/access.log combined;
        error_log /var/log/nginx/error.log error;

        sendfile on;
        keepalive_timeout 20;
        keepalive_disable msie6;
        keepalive_requests 100;
        tcp_nopush on;
        tcp_nodelay off;
        server_tokens off;

        #Options pour la compression
        gzip on;
        gzip_buffers 16 8k;
        gzip_comp_level 5;
        gzip_disable "msie6";
        gzip_min_length 20;
        gzip_proxied any;
        gzip_types text/plain text/css application/json  application/x-javascript text/xml application/xml application/xml+rss  text/javascript;
        gzip_vary on;

        include /etc/nginx/sites-enabled/*.conf;
}
Et j'ai passé le mail en A.
et j'ai rajouté le . que bien sur je n'avais pas.

On va finir par y arriver.

MAJ: les mails fonctionnent en envoies et receptions, mais je n'ai que 7,6 /10
Hello, juste un petit souci: dans PostfixAdmin, les alias n'apparaissent pas alors que le compteur en haut est bon certains ont eu ce problème ?

Egalement, il y a un moyen de mettre les spams dans le dossier SPAM directement sans passer par un filtre dans Outlook ?
Problème résolu, il fallait mettre dans le fichier rainloop.conf:
   server_name     mail.domaine.tld;
   root            /var/www/rainloop;
et non pas
   server_name     rainloop.domaine.tld;
   root            /var/www/rainloop;
Ce qui permet d'y avoir accès via mail.domain.tld

Encore merci pour votre aide et bravo pour le tuto.
Comment récupérer le mdp administrateur de postfix admin ? Je suis perdu, je me rappelle même pas du mail.

Merci d'avance !
@Hank : Pour retrouver l'adresse email du compte administrateur, tu peux faire comme ça :
mysql -u root -p

mysql> connect postfix
mysql> SELECT username FROM admin WHERE superadmin=1 AND active=1;

+------------------+
| username         |
+------------------+
| admin@domain.tld |
+------------------+
1 row in set (0.00 sec)

mysql> quit
Ensuite pour modifier le mot passe, tu peux utiliser un outil fournit avec Dovecot, doveadm-pw :
# Cette commande te donne le HASH correspondant à ton nouveau mot de passe
doveadm pw -s MD5-CRYPT -p MOT_DE_PASSE | sed 's/{MD5-CRYPT}//'

mysql -u root -p

mysql> connect postfix
mysql> UPDATE admin SET password = 'HASH' WHERE username = 'admin@domain.tld';

Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> quit
Slt,

Dites, je demande un petit conseil pour la partie 4 du tuto (configuration de PostFix).
J'ai déjà mon serveur de mail configuré et fonctionnel mais j'aimerais changer le certificat SSL (qui est un auto signé actuellement) par un certificat StartSSL.
Je vois donc qu'il faut indiquer le chemin d'accès dans le fichier /etc/postfix/main.cf :
# Chemin vers votre certficat SSL
smtpd_tls_cert_file = /etc/ssl/certs/server.crt
smtpd_tls_key_file  = /etc/ssl/private/server.key
Dans mon fichier de conf, les fichiers en question sont dovecot.pem.
J'ai donc un doute sur quoi mettre à ce niveau

Dois-je créer un fichier (par exemple) server.key (avec la clé générée par startSSL) puis un server.crt avec le certificat généré pour un sous domaine sur startssl ? Puis ensuite faire pointer sur ces deux fichiers ?

Merci de m'éclairer

Edit : Ce serait pour avoir un certificat signé mais surtout pour outlook qui m'embête avec le certificat auto signé et à chaque ouverture me demande d'enregistrer le certificat et si je veux poursuivre avec ce serveur ^^
Il faut modifier la configuration de Postfix et aussi celle de Dovecot :
# vim /etc/dovecot/conf.d/10-ssl.conf
ssl = required
ssl_cert = </etc/ssl/certs/startssl.crt (certificat)
ssl_key = </etc/ssl/private/startssl.key (clé privée)
# /etc/postfix/main.cf
smtpd_tls_cert_file = /etc/ssl/certs/startssl.crt  (certificat)
smtpd_tls_key_file  = /etc/ssl/private/startssl.key (clé privée)
Dans le fichier .crt, il faut que tu concatènes le certificat correspondant à ton domaine et les certificats racines de StartSSL :

https://www.startssl.com/certs/sub.class1.server.ca.pem
https://www.startssl.com/certs/ca.pem
ca change quelque chose de changer le certificat ??
ça n'a pas vraiment d'interêt si tu es le seul à utiliser ton serveur de mail, c'est juste une question de confiance. Un certificat valide devient obligatoire "moralement parlant" à partir du moment où tu as plusieurs utilisateurs à utiliser un service. Après ça change strictement rien au niveau du chiffrement de la transmission.
Le loglevel je le met bien dans le /etc/postfix/main.cf ? car je l'ai mis, restart postfix et je n'ai que ces lignes dans mail.log :
Oct 13 15:29:12 kimsufi postfix/master[25896]: daemon started -- version 2.9.6, configuration /etc/postfix
Oct 13 15:30:04 kimsufi dovecot: auth-worker(26180): mysql(127.0.0.1): Connected to database postfix
Oct 13 15:30:05 kimsufi dovecot: imap-login: Login: user=<user1@domaine2.tld>, method=PLAIN, rip=81.50.*.*, lip=176.31.*.*, mpid=26183, TLS, session=<oUOG5U0FxwBRMoLR>
Oct 13 15:30:05 kimsufi dovecot: imap-login: Login: user=<user1@domaine2.tld>, method=PLAIN, rip=81.50.*.*, lip=176.31.*.*, mpid=26334, TLS, session=<QeuM5U0FzwBRMoLR>
Oct 13 15:30:05 kimsufi dovecot: imap-login: Login: user=<user1@domaine1.tld>, method=PLAIN, rip=81.50.*.*, lip=176.31.*.*, mpid=26336, TLS, session=<T7CO5U0FyABRMoLR>
Oct 13 15:30:05 kimsufi dovecot: imap-login: Login: user=<user1@domaine1.tld>, method=PLAIN, rip=81.50.*.*, lip=176.31.*.*, mpid=26343, TLS, session=<+pGU5U0F0QBRMoLR>
Oct 13 15:30:06 kimsufi dovecot: imap-login: Login: user=<user2@domaine2.tld>, method=PLAIN, rip=81.50.*.*, lip=176.31.*.*, mpid=26366, TLS, session=<GnmW5U0FxABRMoLR>
Oct 13 15:30:06 kimsufi dovecot: imap-login: Login: user=<user2@domaine2.tld>, method=PLAIN, rip=81.50.*.*, lip=176.31.*.*, mpid=26377, TLS, session=<Xbec5U0F1QBRMoLR>
Tu devrais avoir beaucoup, beaucoup plus de choses
Un peu plus tôt avant d'avoir mis le loglevel, j'ai eu ça dans mail.log :
Oct 13 15:22:53 kimsufi postfix/submission/smtpd[23218]: connect from ANantes-654-1-259-209.w81-50.abo.wanadoo.fr[81.50.*.*]
Oct 13 15:22:53 kimsufi postfix/submission/smtpd[23218]: improper command pipelining after EHLO from ANantes-654-1-259-209.w81-50.abo.wanadoo.fr[81.50.*.*]:
Oct 13 15:22:53 kimsufi postfix/submission/smtpd[23218]: disconnect from ANantes-654-1-259-209.w81-50.abo.wanadoo.fr[81.50.*.*]
Un rapport ?
@MonsterChips : Passe Postfix et dovecot en mode verbose.

Pour postfix, ajoute l'option -v à la ligne smtp :
# /etc/postfix/master.cf

# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
smtp      inet  n       -       -       -       -       smtpd -v
et laisse smtpd_tls_loglevel = 4 dans le fichier /etc/postfix/main.cf

Pour dovecot :
# /etc/dovecot/conf.d/10-logging.conf

log_path = /var/log/dovecot.log
auth_verbose = yes
mail_debug = yes
Puis redémarre les services :
service postfix restart
service dovecot restart
Fait un test de connexion et regarde si il y a des erreurs dans les fichiers /var/log/mail.log, /var/log/mail.err et /var/log/dovecot.log.
Gandalf77 wrote:Hello, juste un petit souci: dans PostfixAdmin, les alias n'apparaissent pas alors que le compteur en haut est bon certains ont eu ce problème ?

Egalement, il y a un moyen de mettre les spams dans le dossier SPAM directement sans passer par un filtre dans Outlook ?
Pas d'idées ?
Gandalf77 wrote:Hello, juste un petit souci: dans PostfixAdmin, les alias n'apparaissent pas alors que le compteur en haut est bon hmm certains ont eu ce problème ?
J'ai jamais eu ce problème, vérifie que tes alias sont bien dans la table postfix.
Gandalf77 wrote:Egalement, il y a un moyen de mettre les spams dans le dossier SPAM directement sans passer par un filtre dans Outlook ?
Oui, il faut configurer un filtre côté serveur. Il existe un langage de programmation nommé Sieve permettant de faire ça accompagné du protocole ManageSieve. Par exemple, tu peux ajouter une nouvelle règle permettant de mettre les spams détectés par SpamAssassin automatiquement dans le répertoire "Junk" grâce à l'extension FileInto :
require ["fileinto"];

if header :contains "Subject" "*****SPAM*****" {

  fileinto "INBOX.Junk";

}
Regarde la documentation de Dovecot et Sieve pour mettre en place ce système de filtrage :

http://sieve.info/
http://wiki2.dovecot.org/Pigeonhole/Sieve
http://tools.ietf.org/html/rfc5228#section-4.1
Bonjour,

J'ai vu que Rainloop à une mise à jour (actual 1.6.9.170)(new 1.6.10.182), je peux la faire via l'interface web d'administration, où il vaut mieux faire ça autrement ? (via un update / upgrade du serveur ?)

merci,
Arcenik
Tu peux la faire depuis l'interface web directement, ça fonctionne très bien.
5 jours plus tard
Hardware wrote:
Gandalf77 wrote:Hello, juste un petit souci: dans PostfixAdmin, les alias n'apparaissent pas alors que le compteur en haut est bon hmm certains ont eu ce problème ?
J'ai jamais eu ce problème, vérifie que tes alias sont bien dans la table postfix.
Finalement en creusant un peu, j'ai trouvé un fix.

http://sourceforge.net/p/postfixadmin/bugs/313/?page=1

Visiblement le souci vient de MariaDB.
Ok merci c'est bon à savoir.
Bonsoir,

J'ai 2 petites questions pour la communautée.

1 - Dans Rainloop il faut entrer son adresse mail complète (nom@ndd.x). est-ce qu'il n'y a pas moyen de faire en sorte qu'il ne faille taper que le nom et que le domaine soit automatiquement détecté ?
2 - Toujours dans Rainloop il m'es impossible d'importer mes contacts google (quelque soit le type de fichier, csv google, csv outlook, ou vcard), etc-ce que quelqu'un d'autre à se problème ?

Merci d'avance,
Arcenik
arcenik wrote:1 - Dans Rainloop il faut entrer son adresse mail complète (nom@ndd.x). est-ce qu'il n'y a pas moyen de faire en sorte qu'il ne faille taper que le nom et que le domaine soit automatiquement détecté ?
Dans l'interface d'administration de Rainloop, tu peux définir le domaine par défaut.