[MAIL] Serveur IMAP et SMTP sous Ubuntu Server

Bonjour a tous,

Suite a cette histoire, je me suis décidé (vraiment ce coup ci) à monter un petit serveur serveur mail pour ma boite (2 adresses avec pleins d’aliases, et une adresse “poubelle” qui récolte tout le reste des mails envoyé sur mon domaine).
Je passait jusque ici par le serveur mail associé a mon nom de domaine chez Gandi mais ils sont mous (quelques dossiers IMAP, beaucoup de pieces jointes a transferer d’un compte a un autres etc…)

Donc je voudrai me servir de notre serveur web/ftp/smb comme serveur mail (IMAP et SMTP), C’est un Ubuntu Server 9.04 (sans interface graphique), avec un Webmin/Usermin dessus (c’est super pratique :))

J’avais déjà plusieurs fois tenté en suivant des tutos (pourtant a la lettre), de faire ca mais sans succès, hier encore une instal de postfix infructueuse.
Tzim m’as parlé dExim, mais pareil j’ai pas réussi. je suis pourtant pas totalement un manche, mais bon je vais finir par le croire.

Déja la question a 100 balles : vers quoi me tourner ?
-Postfix : puissant, usine a gaz, administrable avec Webmin
-Exim4 : a priori plus simple, mais pas grand chose trouvé sur le net…

Puis j’aurai aimé des retour d’expérience sur ce type d’installation, pourquoi tel serveur et pas un autre, vous avez fait comment, installation simple ou laborieuse, etc …
J’aurai surement pleins d’autres question par la suite :crying:

Merci
Ben

J’ai toujours eu une préférence pour postfix, plus simple à configurer je trouve.
Perso j’ai mis en place des vmail (c’est à dire des comptes mails d’utilisateurs n’existant pas sur la machine) via une base mysql, et réception imap.
En gros avec phpmyadmin ou un script perl de 5 lignes tu peux administrer le bousin.

Pourquoi postfix? parceque j’avais des “soucis” avec exim et qu’à mon ancien boulot d’été les sysadmins ne juraient que par postfix.
Il y a des tutos en pagaille, j’ai pas gardé le miens, mais ça devait venir de debianadmin ou un site dans ce genre.
Par contre j’ai gardé mes fichiers de conf.

Si t’as besoin d’aide, sipossible, si tu veux que jte le fasse, ça doit être possible aussi.

Le problème, c’est surtout de faire fonctionner tous les logiciels ensemble.
Pour un serveur de messagerie, tu as besoin:

  • D’un MTA (mail transfer agent) Comme Postfix ou Exim
  • D’un MDA (mail delivery agent) (Maildrop, Dovecot-mda), qui sert à recevoir les mails venant du MTA pour les écrire sur le disque dur du serveur
  • D’un serveur IMAP/POP3 (Dovecot, courier, cyrus …)

On les utilise souvent avec des comptes mails virtuels (en opposition aux comptes unix), stockés en base de données. Tu peux créer tes tables à la main mais c’est quand même mieux d’avoir une interface pour gérer tout ça.

Je n’ai pas trouvé grand chose… Il y a phamm (base ldap), sur lequel j’ai bien galéré, avant de me tourner vers ISPconfig, qui est pas mal, avec un forum actif, en base mysql, mais qui t’impose pas mal de choix.

Sinon, c’est difficile d’avoir des avis définitifs sur un logiciel ou un autre, je crois que le plus important c’est de prendre ceux qui sont bien documentés. J’ai juste une préférence pour Dovecot, qui paraît il est plus rapide que les autres en imap, mais surtout qui est très bien documenté et pour lequel on trouve des scripts de migration.

[quote=“gring, post:3, topic: 39943”]Le problème, c’est surtout de faire fonctionner tous les logiciels ensemble.
Pour un serveur de messagerie, tu as besoin:

  • D’un MTA (mail transfer agent) Comme Postfix ou Exim
  • D’un MDA (mail delivery agent) (Maildrop, Dovecot-mda), qui sert à recevoir les mails venant du MTA pour les écrire sur le disque dur du serveur
  • D’un serveur IMAP/POP3 (Dovecot, courier, cyrus …)[/quote]

J’ajouterais aussi : une base de données utilisateurs. (historiquement, les comptes utilisateur de la machine, mais sur un systeme moderne, une base LDAP ou SQL).
A noter qu’exim fait aussi office de MDA si on veux pas se compliquer la vie.
J’utilise dovecot-mda uniquement pour faire du classement automatique.

@Acidben : qu’est-ce qui t’embete exactement dans le tuto que je t’ai passé ? Où est-ce que ca coince ?

Le probleme d’exim est effectivement que ca manque de tutos.
C’est sans doute moins flexible que postfix, mais t’as un unique fichier de conf.

Procmail vaincra !!! :slight_smile:

Bon alors, déjà merci a tous pour vos réponses :crying:
tzim & fser pour le coup de main on verra si vraiment je m’en sors pas avec des explication :stuck_out_tongue:

Aujourd’hui, le serveur accepte les connections IMAP, mais ne reçoit aucun mail (même envoyés en interne avec la commande mail userunix@nomdelamachine)
Pourtant j’ai bien un dossier Maildir, ou dedans se sont créé tout seul les dossiers IMAP user@mon_serveur:~/Maildir$ ls -a . courierimapkeywords courierimapuiddb .Drafts new .Trash .. courierimapsubscribed cur .Envoy&AOk-s tmp
Et il ne peut pas non plus en envoyer, en regardant dans la queue dans Webmin je me suis rendu compte que tous les mails était là et ne sont jamais parti…

Viens ensuite la question épineuse du DNS, pour les enregistrements MX j’ai mis

@ 10800 IN MX 10 mail.mondomaine.fr vu que dans /etc/postfix/mail.cf j’ai myhostname = mail.mondomaine.fr Mais je pense pas que ca soit bon …

[quote=« fser, post:2, topic: 39943 »]J’ai toujours eu une préférence pour postfix, plus simple à configurer je trouve.
Perso j’ai mis en place des vmail (c’est à dire des comptes mails d’utilisateurs n’existant pas sur la machine) via une base mysql, et réception imap.
En gros avec phpmyadmin ou un script perl de 5 lignes tu peux administrer le bousin.[/quote]Et pour 2 voire 3 adresses ce serait quoi le plus simple des vmail ou des utilisateurs unix ? sachant qu’il y a déjà un serveur MySQL présent sur le serveur, mais que je veux faire au plus simple :cry:

[quote=« gring, post:3, topic: 39943 »]Le problème, c’est surtout de faire fonctionner tous les logiciels ensemble.
Pour un serveur de messagerie, tu as besoin:

  • D’un MTA (mail transfer agent) Comme Postfix ou Exim
  • D’un MDA (mail delivery agent) (Maildrop, Dovecot-mda), qui sert à recevoir les mails venant du MTA pour les écrire sur le disque dur du serveur
  • D’un serveur IMAP/POP3 (Dovecot, courier, cyrus …)[/quote]:slight_smile: j’avais pas vu ca comme ca, présentement j’ai installé courrier-imap du coup je ne sais pas si c’est un MDA ou MTA, là je m’y perd un peut a vrai dire… je l’ai installé pour suivre un tuto sur la Documentation Ubuntu (que j’ai pourtant suivie a la lettre …)

[quote=« Tzim, post:4, topic: 39943 »]@Acidben : qu’est-ce qui t’embete exactement dans le tuto que je t’ai passé ? Où est-ce que ca coince ?

Le probleme d’exim est effectivement que ca manque de tutos.
C’est sans doute moins flexible que postfix, mais t’as un unique fichier de conf.[/quote] Enfaite ton tuto m’as un peut désorienté en parlant de BdD, je comprend un peut mieux maintenant de quoi ca parlais …

Donc je récapitule :

  • pour le moment j’ai postfix + courrier-imap installé
  • la configuration du DNS reste a valider
  • je peux me connecter avec Thunderbird en IMAP (mais je ne reçoit aucun mail)
  • je ne peux pas me connecter en SMTP
  • les mails envoyés (depuis la console) restent en fille d’attente (vu dans webmin).

Merci à tous pour votre soutien, je pensait pas galérer autan sur un « simple » serveur mail …
Ben

Ben c’est UN PEU un metier de configurer tout ca, donc que ca soit pas simple pour celui qui ne connait pas n’est pas specialement choquant. Enfin moi ca me choque pas. Ca me fait penser a « putain, c’est si complique que ca de changer le carbu sur mon moteur? Ben ouais, c’est pour ca qu’il y a des garagistes :crying: »
Enfin pareil que les autres, si tu veux un coup de main, PM, parce que c’est UN PEU mon metier :cry:

PS: ubuntu en serveur de prod, ca me choque par contre… Mais on ne va pas troller :stuck_out_tongue:

LoneWolf
Un peu beaucoup en fait :slight_smile:

J’ai essayé un peut cette nuit de me dépatouiller mais sans succes …

Toujours pas de mails dans la boite IMAP (pour l’instant celle d’un user UNIX)
Et toujours impossible de se connecter en SMTP, même en local :

Voici mon /etc/postfix/main.cf :

[codebox]##VERSION: $Id: imapd.dist.in,v 1.41 2008/06/21 16:01:23 mrsam Exp $

ADDRESS=0

PORT=143

AUTHSERVICE143=imap

AUTHSERVICE993=imaps

MAXDAEMONS=40

MAXPERIP=20

PIDFILE=/var/run/courier/imapd.pid

TCPDOPTS="-nodnslookup -noidentlookup"

LOGGEROPTS="-name=imapd"

#DEFDOMAIN="@example.com"

IMAP_CAPABILITY=« IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 AUTH=CRAM-SHA256 IDLE »

IMAP_CAPABILITY=« IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE »

IMAP_KEYWORDS=1

IMAP_ACL=1

SMAP_CAPABILITY=SMAP1

IMAP_CAPABILITY_ORIG=« IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 AUTH=CRAM-SHA256 IDLE »

IMAP_PROXY=0

PROXY_HOSTNAME=

IMAP_PROXY_FOREIGN=0

IMAP_IDLE_TIMEOUT=60

IMAP_MAILBOX_SANITY_CHECK=1

IMAP_CAPABILITY_TLS="$IMAP_CAPABILITY AUTH=PLAIN"

IMAP_CAPABILITY_TLS_ORIG="$IMAP_CAPABILITY_ORIG AUTH=PLAIN"

IMAP_DISABLETHREADSORT=0

IMAP_CHECK_ALL_FOLDERS=0

IMAP_OBSOLETE_CLIENT=0

IMAP_UMASK=022

IMAP_ULIMITD=65536

IMAP_USELOCKS=1

IMAP_SHAREDINDEXFILE=/etc/courier/shared/index

IMAP_ENHANCEDIDLE=0

IMAP_TRASHFOLDERNAME=Trash

IMAP_EMPTYTRASH=Trash:7

IMAP_MOVE_EXPUNGE_TO_TRASH=0

OUTBOX=.Outbox

SENDMAIL=/usr/sbin/sendmail

HEADERFROM=X-IMAP-Sender

OUTBOX_MULTIPLE_SEND=1

IMAPDSTART=YES

MAILDIRPATH=Maildir[/codebox]

Pour moi c’est tout bon, enfin j’ai bien suivi ce que j’ai vu sur le net, et lu dans les commentaires des fichiers de conf…
Sinon pour l’enregistrement MX (chez Gandi), est-ce-que « @ 10800 IN MX 10 mail.mondomaine.fr. » est bon dans ce cas ?

@LoneWolf : en fait c’est un Ubuntu Serveur, il marche assez bien (je me sert de ca depuis que j’ai abandonné définitivement Fédora…) :slight_smile:

Merci beaucoup pour votre aide :crying:

Essaye de te connecter en SMTP en console.

nc (ou telnet) tonserveur 25 HELO truc-plus-ou-moins-rfc-compliant (mais devrait pouvoir être presque nimpote quoi par défaut genre helo smtp). MAIL FROM: <moi@mondomaine.fr> RCPT TO: tonuserunix@domaine DATA subject: mon sujet hello world .

et regarde si ça ça passe.
Ensuite, passe le niveau de log de postfix à 2 (de mémoire, 3 ça met même le mot de passe en clair dans les logs :))
regarde le log des mails (qui devrait inclure les erreurs, ou le log d’erreur sinon).

Bon déja je vérifie que les serveur sont bien lancés :[code]user@mon_serveur:~$ sudo /etc/init.d/postfix restart && sudo /etc/init.d/courier-imap restart && sudo /etc/init.d/courier-authdaemon restart

  • Stopping Postfix Mail Transport Agent postfix [ OK ]
  • Starting Postfix Mail Transport Agent postfix [ OK ]
  • Stopping Courier IMAP server… [ OK ]
  • Starting Courier IMAP server… [ OK ]
  • Stopping Courier authentication services authdaemond [ OK ]
  • Starting Courier authentication services authdaemond [ OK ]
    user@mon_serveur:~$[/code]Tout est OK

Et là avec netcat je me prend un vent :

user@mon_serveur:~$ nc 127.0.0.1 25 (UNKNOWN) [127.0.0.1] 25 (smtp) : Connection refused :crying:
Et depuis une autre machine pareil :

# nc 192.168.1.223 25 nc: cannot connect to remote host (192.168.1.223): Connection refused #Ya un truc qui tourne pas rond, mais pourtant mes fichiers conf on l’air OK non ?

Sinon pour les logs, /var/log/mail n’existe pas ni /var/log/postfix, mais /var/log/messages lui existe bien, et il est rempli de Jun 28 06:47:04 mon_serveur syslogd 1.5.0#5ubuntu3: restart. Jun 28 07:10:22 mon_serveur -- MARK -- Jun 28 07:30:22 mon_serveur -- MARK -- Jun 28 07:50:22 mon_serveur -- MARK -- ...........................Je fais comment pour élever le niveau de log ? je vois pas ca dans main.cf …

Merci encore, on va y arriver … 'fin, j’espère :slight_smile:

netstat -napt est ton ami pour savoir qui fait quoi sur quels ports.
Tu devrais trouver une ligne genre :

Après comme je disais, peut-être que tu as tout chiffré et que donc le smtp non chifré n’est pas permis, donc regarde si un truc tourne sur le 465.
Ton problème me fait penser à un truc tu n’aurais pas fait mumuse avec le fichier master.conf de postfix par hasard?

Alors en effet netstat me révèle que mon serveur n’écoute pas sur ni sur le port 25 ni sur le port 465 :crying:
[codebox]Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 2252/mysqld
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 2488/smbd
tcp 0 0 192.168.1.223:9100 0.0.0.0:* LISTEN 32595/tor
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 649/apache2
tcp 0 0 0.0.0.0:2709 0.0.0.0:* LISTEN 2640/perl
tcp 0 0 127.0.0.1:8118 0.0.0.0:* LISTEN 31265/privoxy
tcp 0 0 0.0.0.0:2806 0.0.0.0:* LISTEN 2636/perl
tcp 0 0 0.0.0.0:2583 0.0.0.0:* LISTEN 2461/perl
tcp 0 0 0.0.0.0:2200 0.0.0.0:* LISTEN 2162/sshd
tcp 0 0 127.0.0.1:9050 0.0.0.0:* LISTEN 32595/tor
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 649/apache2
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 2488/smbd
tcp 0 0 192.168.1.223:46638 x.x.x.x:443 ESTABLISHED 32595/tor
tcp 0 0 192.168.1.223:50046 x.x.x.x:9001 ESTABLISHED 32595/tor
tcp 0 0 192.168.1.223:48785 x.x.x.x:143 ESTABLISHED 32595/tor
tcp 0 0 192.168.1.223:40574 x.x.x.x:9001 ESTABLISHED 32595/tor
tcp 92 0 192.168.1.223:445 192.168.1.101:1047 ESTABLISHED 3991/smbd
tcp 0 0 192.168.1.223:58711 x.x.x.x:443 ESTABLISHED 32595/tor
tcp 0 148 192.168.1.223:2200 192.168.1.101:1236 ESTABLISHED 3994/sshd: user [pr
tcp 0 0 192.168.1.223:47287 x.x.x.x:443 ESTABLISHED 32595/tor
tcp 0 0 192.168.1.223:445 192.168.1.1:2072 ESTABLISHED 2642/smbd
tcp6 0 0 :::143 :::* LISTEN 4225/couriertcpd
tcp6 0 0 :::21 :::* LISTEN 2515/proftpd: (acce
tcp6 0 0 :::2200 :::* LISTEN 2162/sshd
tcp6 0 0 192.168.1.223:143 192.168.1.101:1372 ESTABLISHED 4264/imapd
tcp6 0 0 192.168.1.223:143 192.168.1.101:1371 ESTABLISHED 4263/imapd
tcp6 0 0 192.168.1.223:143 192.168.1.101:1375 ESTABLISHED 4269/imapd
[/codebox]

Sinon j’ai peut etre trouvé une piste :

[codebox]#

Postfix master process configuration file. For details on the format

of the file, see the master(5) manual page (command: « man 5 master »).

Do not forget to execute « postfix reload » after editing this file.

==========================================================================

service type private unpriv chroot wakeup maxproc command + args

(yes) (yes) (yes) (never) (100)

==========================================================================

smtp inet n - - - - smtpd
#submission inet n - - - - smtpd

-o smtpd_tls_security_level=encrypt

-o smtpd_sasl_auth_enable=yes

-o smtpd_client_restrictions=permit_sasl_authenticated,reject

-o milter_macro_daemon_name=ORIGINATING

#smtps inet n - - - - smtpd

-o smtpd_tls_wrappermode=yes

-o smtpd_sasl_auth_enable=yes

-o smtpd_client_restrictions=permit_sasl_authenticated,reject

-o milter_macro_daemon_name=ORIGINATING

#628 inet n - - - - qmqpd
pickup fifo n - - 60 1 pickup
cleanup unix n - - - 0 cleanup
qmgr fifo n - n 300 1 qmgr
#qmgr fifo n - - 300 1 oqmgr
tlsmgr unix - - - 1000? 1 tlsmgr
rewrite unix - - - - - trivial-rewrite
bounce unix - - - - 0 bounce
defer unix - - - - 0 bounce
trace unix - - - - 0 bounce
verify unix - - - - 1 verify
flush unix n - - 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - - - - smtp

When relaying mail as backup MX, disable fallback_relay to avoid MX loops

relay unix - - - - - smtp
-o smtp_fallback_relay=

-o smtp_helo_timeout=5 -o smtp_connect_timeout=5

showq unix n - - - - showq
error unix - - - - - error
retry unix - - - - - error
discard unix - - - - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - - - - lmtp
anvil unix - - - - 1 anvil
scache unix - - - - 1 scache

====================================================================

Interfaces to non-Postfix software. Be sure to examine the manual

pages of the non-Postfix software to find out what options it wants.

Many of the following services use the Postfix pipe(8) delivery

agent. See the pipe(8) man page for information about ${recipient}

and other message envelope options.

====================================================================

maildrop. See the Postfix MAILDROP_README file for details.

Also specify in main.cf: maildrop_destination_recipient_limit=1

maildrop unix - n n - - pipe
flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}

See the Postfix UUCP_README file for configuration details.

uucp unix - n n - - pipe
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)

Other external delivery methods.

ifmail unix - n n - - pipe
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - pipe
flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix - n n - 2 pipe
flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman unix - n n - - pipe
flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
${nexthop} ${user}
[/codebox]

L’avancée du jour : Maintenant je sais que rien ne marche … :slight_smile:

Un grand merci a fser qui m’as filé un coup de main :slight_smile:
Les mails partent, et je peut les recevoir dans mon client en IMAP, pour l’instant ca ne marche qu’en local, mais je vais voir pour la config DNS.
Il me restera ensuite a configurer les utilisateurs …