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

Dans ce cas, le plus judicieux ce serait d'utiliser la BDD actuelle et d'adapter les requêtes. Je peux t'aider à adapter les fichiers de config si tu le souhaites, il me faudrait un export de ta BDD, juste la structure pas les données bien entendu.
Comme cela ?
Un grand merci en tout cas, tu vas me sauver
-- --------------------------------------------------------
-- Hôte:                         37.187.131.83
-- Version du serveur:           5.5.41-0+wheezy1-log - (Debian)
-- Serveur OS:                   debian-linux-gnu
-- HeidiSQL Version:             9.1.0.4867
-- --------------------------------------------------------

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET NAMES utf8mb4 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;

-- Export de la structure de la base pour postfix
CREATE DATABASE IF NOT EXISTS `postfix` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `postfix`;


-- Export de la structure de table postfix. admin
CREATE TABLE IF NOT EXISTS `admin` (
  `username` varchar(255) NOT NULL DEFAULT '',
  `password` varchar(255) NOT NULL DEFAULT '',
  `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL DEFAULT '1',
  PRIMARY KEY (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Postfix Admin - Virtual Admins';

-- L'exportation de données n'été pas sélectionné.


-- Export de la structure de table postfix. alias
CREATE TABLE IF NOT EXISTS `alias` (
  `source` varchar(255) NOT NULL DEFAULT '',
  `destination` text NOT NULL,
  `etat` tinyint(1) NOT NULL DEFAULT '1',
  PRIMARY KEY (`source`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- L'exportation de données n'été pas sélectionné.


-- Export de la structure de table postfix. comptes
CREATE TABLE IF NOT EXISTS `comptes` (
  `email` varchar(255) NOT NULL DEFAULT '',
  `password` varchar(255) NOT NULL DEFAULT '',
  `quota` int(10) NOT NULL DEFAULT '0',
  `etat` tinyint(1) NOT NULL DEFAULT '1',
  `imap` tinyint(1) NOT NULL DEFAULT '1',
  `pop3` tinyint(1) NOT NULL DEFAULT '1',
  PRIMARY KEY (`email`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- L'exportation de données n'été pas sélectionné.


-- Export de la structure de table postfix. config
CREATE TABLE IF NOT EXISTS `config` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) CHARACTER SET latin1 NOT NULL DEFAULT '',
  `value` varchar(20) CHARACTER SET latin1 NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='PostfixAdmin settings';

-- L'exportation de données n'été pas sélectionné.


-- Export de la structure de table postfix. domain
CREATE TABLE IF NOT EXISTS `domain` (
  `domain` varchar(255) NOT NULL DEFAULT '',
  `description` varchar(255) NOT NULL DEFAULT '',
  `aliases` int(10) NOT NULL DEFAULT '0',
  `mailboxes` int(10) NOT NULL DEFAULT '0',
  `maxquota` bigint(20) NOT NULL DEFAULT '0',
  `quota` bigint(20) NOT NULL DEFAULT '0',
  `transport` varchar(255) DEFAULT NULL,
  `backupmx` tinyint(1) NOT NULL DEFAULT '0',
  `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL DEFAULT '1',
  PRIMARY KEY (`domain`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Postfix Admin - Virtual Domains';

-- L'exportation de données n'été pas sélectionné.


-- Export de la structure de table postfix. domaines
CREATE TABLE IF NOT EXISTS `domaines` (
  `domaine` varchar(255) NOT NULL DEFAULT '',
  `etat` tinyint(1) NOT NULL DEFAULT '1',
  PRIMARY KEY (`domaine`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- L'exportation de données n'été pas sélectionné.


-- Export de la structure de table postfix. domain_admins
CREATE TABLE IF NOT EXISTS `domain_admins` (
  `username` varchar(255) NOT NULL DEFAULT '',
  `domain` varchar(255) NOT NULL DEFAULT '',
  `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL DEFAULT '1',
  KEY `username` (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Postfix Admin - Domain Admins';

-- L'exportation de données n'été pas sélectionné.


-- Export de la structure de table postfix. log
CREATE TABLE IF NOT EXISTS `log` (
  `timestamp` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `username` varchar(255) NOT NULL DEFAULT '',
  `domain` varchar(255) NOT NULL DEFAULT '',
  `action` varchar(255) NOT NULL DEFAULT '',
  `data` varchar(255) NOT NULL DEFAULT '',
  KEY `timestamp` (`timestamp`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Postfix Admin - Log';

-- L'exportation de données n'été pas sélectionné.


-- Export de la structure de table postfix. mailbox
CREATE TABLE IF NOT EXISTS `mailbox` (
  `username` varchar(255) NOT NULL DEFAULT '',
  `password` varchar(255) NOT NULL DEFAULT '',
  `name` varchar(255) NOT NULL DEFAULT '',
  `maildir` varchar(255) NOT NULL DEFAULT '',
  `quota` bigint(20) NOT NULL DEFAULT '0',
  `domain` varchar(255) NOT NULL DEFAULT '',
  `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL DEFAULT '1',
  PRIMARY KEY (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Postfix Admin - Virtual Mailboxes';

-- L'exportation de données n'été pas sélectionné.


-- Export de la structure de table postfix. vacation
CREATE TABLE IF NOT EXISTS `vacation` (
  `email` varchar(255) NOT NULL,
  `subject` varchar(255) NOT NULL,
  `body` text NOT NULL,
  `cache` text NOT NULL,
  `domain` varchar(255) NOT NULL,
  `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `active` tinyint(4) NOT NULL DEFAULT '1',
  PRIMARY KEY (`email`),
  KEY `email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Postfix Admin - Virtual Vacation';

-- L'exportation de données n'été pas sélectionné.
/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
Je viens de vérifier les requêtes, tout me semble bon sauf pour les alias, dans ton cas la requête serait plutôt la suivante :
SELECT destination FROM alias WHERE source='%s' AND etat = 1
Mais ça va pas résoudre ton problème d'authentification. Donc si les requêtes sont bonnes ça veut dire que le soucis peut venir des mots de passe, par défaut Dovecot utilise MD5-CRYPT, mais peut-être que les mdp n'ont pas été hashés avec cet algo. Faudrait que tu essayes de retrouver l'algorithme utilisé, tu as suivi quel tuto précédemment ?

Voir : http://wiki2.dovecot.org/Authentication/PasswordSchemes
D'accord, j'ai suivi exactement ce tuto http://www.tutoriels-video.fr/installation-et-configuration-dun-serveur-de-mail-avec-postfix-et-courier/
Du coup j'entre mes mails comme cela :
INSERT INTO `comptes` ( `email` , `password` , `quota` , `etat` , `imap` , `pop3` ) VALUES
('contact@VOTRE_DOMAINE.com', ENCRYPT( 'VOTRE_PASS_MAIL' ) , '0', '1', '1', '1');
Et mes domaines :
INSERT INTO `domaines` ( `domaine` , `etat` ) VALUES ('VOTRE_DOMAINE.com', '1');
Les pass apparaissent sous cette forme : Me07ght5VAaU2
Je ne pense pas que ce soit la même encryption oui c'est sur
Ok donc tu utilises la fonction UNIX crypt() provenant de la librairie libc, dans ce cas faut que tu modifies dans le fichier fichier /etc/dovecot/dovecot-sql.conf.ext la directive default_pass_scheme en mettant CRYPT :
# vim /etc/dovecot/dovecot-sql.conf.ext

# Permet de définir l'algorithme de hachage.
# Pour plus d'information: http://wiki2.dovecot.org/Authentication/PasswordSchemes
default_pass_scheme = CRYPT
Ok, j'ai modifié.

Pour info dans mes mail.log j'ai cela qui apparait :
Jan 29 19:02:44 ns316675 postfix/cleanup[22684]: fatal: /etc/postfix/mysql-virtual_aliases.cf, line 7: missing '=' after attribute name: "SELECT destination FROM alias WHERE source='%s' AND etat = 1"
Et sur mon appli Mail, il me demande sans cesse le mot de passe de la boite mail
Si j'envois un mail à une des boites mails hébergées dessus, elle n'arrive jamais, je ne sais même pas ou elle va se perdre

RE EDIT : Bon je pense que je vais tout supprimer y compris ce que j'avais déjà installé avant.
Quelqu'un peut m'aider pour tout supprimer ce qui est installé niveau serveur mail ?
J'ai postfix, dovecot et roundcube dessus, après mysql, je supprimerai juste la base de donnée qui y est de postfix pour faire bien tout propre.
Et si ça marche pas je me pends
Me revoila, bon j'ai tout refait, comme on en a parlé sur le chat, lors de l'écoute de mes ports ouverts j'ai cela :
tcp        0      0 127.0.0.1:587           0.0.0.0:*               LISTEN      8979/sendmail: MTA:
Si je fais un telnet localhost 25
:
220 monserveur ESMTP Sendmail 8.14.4/8.14.4/Debian-4; Fri, 30 Jan 2015 13:19:57 +0100; (No UCE/UBE) logging access from: localhost.localdomain(OK)-localhost.localdomain [127.0.0.1]
ehlo locahlost
250-monserveur.eu Hello localhost.localdomain [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5
250-DELIVERBY
250 HELP
je pense qu'il y a une couille non ?
Jusqu'à présent dans les fichiers de configuration je n'ai pas eu d'erreur
Il faut que tu coupe sendmail et que tu relance postfix.
Sendmail fout toujours la merde.
D'accord, mais cela ne va pas poser un soucis par la suite notamment au niveau de l'envoi de mail depuis des formulaires de contact de mes CMS ?

Quand je tente de me connecter depuis un client mail, voici les logs que j'ai :
Jan 30 13:52:10 ns316675 postfix/submission/smtpd[22491]: connect from chezmoi[MONIP]
Jan 30 13:52:14 ns316675 postfix/submission/smtpd[22491]: warning: chezmoi[MONIP]: SASL PLAIN authentication failed:
Jan 30 13:52:14 ns316675 postfix/submission/smtpd[22491]: disconnect from chezmoi[MONIP]
Jan 30 13:52:40 ns316675 dovecot: imap-login: Aborted login (auth failed, 1 attempts in 3 secs): user=<carole@mondomaine.fr>, method=PLAIN, rip=ipchezmoi, lip=ipserveur, TLS, session=<MTA/FN4NnABO5qFj>
Je ne comprends pas ou ça foire
Le smtp est configuré en 587 en utilisant SSL et authentification Externe TLS sur mon client mail avec le nom d'utilisateur (mail) et password du compte mail en question. Est-ce bon déjà de ce côté config ?
Mail me demande sans cesse le password de la boite mail et lorsque je tente d'envoyer un mail :

Mail n’a pas pu se connecter au serveur « smtp.mondomaine.fr » via SSL sur le port 587. Vérifiez que ce serveur gère SSL et que vos réglages de compte sont corrects.

Egalement j'ai cela dans mes logs, je ne sais absolument pas ce que c'est
Jan 30 14:00:06 ns316675 postfix/pickup[22125]: B6A7FE07AF: uid=0 from=<root>
Jan 30 14:00:06 ns316675 postfix/cleanup[23119]: B6A7FE07AF: message-id=<20150130130006.B6A7FE07AF@ns316675.ip-.eu>
Jan 30 14:00:06 ns316675 postfix/qmgr[22126]: B6A7FE07AF: from=<root@ns316675.eu>, size=628, nrcpt=1 (queue active)
Jan 30 14:00:06 ns316675 postfix/smtp[23121]: B6A7FE07AF: to=<root@ns316675.eu>, orig_to=<root>, relay=none, delay=0.07, delays=0.06/0/0.01/0, dsn=5.4.6, status=bounced (mail for ns316675.eu loops back to myself)
Jan 30 14:00:06 ns316675 postfix/cleanup[23119]: C7DD2E07B3: message-id=<20150130130006.C7DD2E07B3@ns316675..eu>
Jan 30 14:00:06 ns316675 postfix/bounce[23122]: B6A7FE07AF: sender non-delivery notification: C7DD2E07B3
Jan 30 14:00:06 ns316675 postfix/qmgr[22126]: C7DD2E07B3: from=<>, size=2630, nrcpt=1 (queue active)
Jan 30 14:00:06 ns316675 postfix/qmgr[22126]: B6A7FE07AF: removed
Jan 30 14:00:06 ns316675 postfix/smtp[23121]: C7DD2E07B3: to=<root@ns316675.eu>, relay=none, delay=0.03, delays=0.03/0/0/0, dsn=5.4.6, status=bounced (mail for ns316675.eu loops back to myself)
Jan 30 14:00:06 ns316675 postfix/qmgr[22126]: C7DD2E07B3: removed
Aussi, quand je crée un domaine et un mail dans postfixadmin, ne devrait-il pas apparaître ici : /var/mail/vhosts# ?
Car je ne vois pas les domaines que j'ai crée dans postfixadmin

Merci d'avance
Donc, après aide de Hardware, j'ai checker mes fichiers de conf de dovecot et il s'avère que j'avais oublié cette étape :
# vim /etc/dovecot/conf.d/10-auth.conf

disable_plaintext_auth = yes
auth_mechanisms = plain login
#!include auth-system.conf.ext # Commenter cette ligne
!include auth-sql.conf.ext     # décommenter cette ligne
Test IMAP : OK
STMP : En cours

Edit:

La configuration sur Mail (mac) fonctionne, cependant sur Thunderbird, c'est impossible.
Voici ce que j'ai dans mes logs :
Feb  2 21:16:42 ns316675 postfix/submission/smtpd[15016]: connect from vil47
Feb  2 21:16:42 ns316675 postfix/submission/smtpd[15016]: improper command pipelining after EHLO from vil: QUIT\r\n
Feb  2 21:16:42 ns316675 postfix/submission/smtpd[15016]: disconnect from vil47
Feb  2 21:16:42 ns316675 dovecot: imap-login: Disconnected (no auth attempts in 0 secs): user=<>, rip=monip, lip=ipserveur, TLS: SSL_read() failed: error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca: SSL alert number 48, session=<Kbf7oSAOUQBO5qFj>
La config sur Thunderbird : https://images.mondedie.fr/images/capturzhz.png
Et ce soucis est présent avec n'importe quel domaine et user bien entendu, pas seulement celui sur le screen.
Hello,

Il me semble que c'est du au certificat autosigné.
Sous Mail (os X), je ne suis pas parvenu à renseigner de compte courriel, le protocole STARTTLS n'étant pas pris en charge. J'ai dû passer par Airmail 2 pour que ça fonctionne.
Solinvictus, perso sur Mail ça fonctionne chez moi > https://images.mondedie.fr/images/capturfsf.png
Bon la configuration n'est pas en STARTTLS je pense, mais ça fonctionne en réception et envoi !

Par contre, je n'y arrive toujours pas sur Thunderbird

@Gandalf: Ah bon ? Pourtant dans le tuto ça fonctionne sans soucis..
Joss47 wrote:Solinvictus, perso sur Mail ça fonctionne chez moi > https://images.mondedie.fr/images/capturfsf.png
Bon la configuration n'est pas en STARTTLS je pense, mais ça fonctionne en réception et envoi !

Par contre, je n'y arrive toujours pas sur Thunderbird

@Gandalf: Ah bon ? Pourtant dans le tuto ça fonctionne sans soucis..
Certainement ^^

Pour en revenir à Thunderbird, j'avais dû downgrader la dernière version pour une plus ancienne, pour que cela fonctionne. C'est mentionné quelque part dans la discussion, si je ne m'abuse.
Arf pas cool, je me vois mal dire à mes clients "Merci d'installer une vieille version de Thunderbird et paramétrer toutes vos boites mails" xD
Ennuyeux tout ça
Le solution est donnée dans ce fil de discussion, regarde quelques pages avant.
De toute façon si tu as un client faudra que tu mettes en place un veritable certificat provenant d'une autorité de certification. Un certificat auto-signé c'est bien pour faire des tests ou pour la famille/amis.
Hardware, je souhaiterais enlevé toute l'installation sur mon premier serveur car je vais le refaire sur mon deuxieme

il y a une commande miracle stp ?

merci
je réponds avec les infos :
wget https://raw.githubusercontent.com/hardware/mailserver-autoinstall/master/uninstall.sh && chmod +x uninstall.sh && ./uninstall.sh