Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 01/10/2006, à 11:38

Débutant_motivé

Pétage de tête avec un serveur mail

Bon ca fait trois jours maintenant, que je me pete la tete pour mettre en place un serveur de mail.
j'esaye ce forum, n'ayant pas eut de réponses sur les autres.
Je suis sur une ubuntu, donc j'ai utilisé le topic ubuntu pour ca, diponible à l'adresse,
http://doc.ubuntu-fr.org/serveur/mail
ca fonctionne niquel, mais le problème c'est que les utilisateurs qui pouvaient utiliser squirrelmail etaient des utilisateurs locaux.(autrement dit moi et root)
Bilan, je veux que mon serveur de mail tourne avec une bdd Mysql.
je me renseigne, et j'aprend que c'est possible. ca s'appelle postfix-mysql.
alors des topic la dessus y'en a une floppée...
entre ceux qui sont mal ficelé ou ceux dont les requetes sont mad et ceux ou le type qui donne l'explication ne se comprend que lui meme, bref, ca a commencer à partir en sucette, surtout que je ne suis pas un pro...
j'ai donc cherché sur google et j'ai trouvé tout sauf le bon pti tuto complet...(surtout que pour une ubuntu c'est plus rare)

Concretement, sur ma machine, j'ai postfix, courier, mysql, php apache, et squirrelmail.
paradoxalement, quand ej m'envois un mail en local en mode konsole, je n'ai pas d'érreur notable, et j'ai meme un bon retour dans les fichiers logs.

Sep 30 21:08:33 localhost postfix/pickup[12089]: 89B4C28D40D: uid=0 from=<root>
Sep 30 21:08:33 localhost postfix/cleanup[12173]: 89B4C28D40D: message-id=<20060930190833.89B4C28D40D@97x.fr>
Sep 30 21:08:33 localhost postfix/qmgr[12090]: 89B4C28D40D: from=<root@97x.fr>, size=299, nrcpt=1 (queue active)
Sep 30 21:08:33 localhost postfix/virtual[12179]: 89B4C28D40D: to=<alexandre@97x.fr>, relay=virtual, delay=0, status=sent (delivered to maildir)
Sep 30 21:08:33 localhost postfix/qmgr[12090]: 89B4C28D40D: removed

je vais vous donner toutes les infos que je peux vous donner, et je suis prenneur de toutes solutions ou aide.

voici la config de mon /etc/postfix/main.cf

# virtual
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql-virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = "Desole, la boite email de l'utilisateur est pleine, essayez plus tard."
virtual_overquota_bounce = yes

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache

# Do not change these directory settings - they are critical to Postfix
# operation.
#command_directory = /usr/sbin
#daemon_directory = /usr/lib/postfix
#program_directory = /usr/lib/postfix

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

# appending .domain is the MUA's job.
append_dot_mydomain = no

#Le nom resolvable de la machine
myhostname = 97x.fr
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

#Voici nos fichiers pour indiquer d'utiliser MySQL
transport_maps=mysql:/etc/postfix/transport.cf
virtual_mailbox_maps=mysql:/etc/postfix/mysql_virt.cf
virtual_uid_maps=mysql:/etc/postfix/uids.cf
virtual_gid_maps=mysql:/etc/postfix/gids.cf
virtual_mailbox_base=/
virtual_maps=mysql:/etc/postfix/virtual.cf

#Laissez cette variable, vous pouvez en ajouter des statiques en séparant par des virgules
#relay_domains = $transport_maps
myorigin = /etc/mailname
mydestination = 97x.fr, localhost, localhost.localdomain, localhost
#relayhost = 

#Les réseaux qui pourront envoyer des mails avec ce smtp
mynetworks = 127.0.0.0/8, 192.168.1.0/24
#mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
home_mailbox = Maildir/

unknown_local_recipient_reject_code = 450

et voici le contenu des fichiers aliases.

Transport.cf
  
user = mail
password = mail
dbname =  postfix
table = transport
select_field = transport
where_field = domain
hosts = localhost
  
mysql_virt.cf
  
user = mail
password = mail
dbname =  postfix
table = users
select_field = maildir
where_field = address
hosts = localhost
  
uids.cf
  
user = mail
password = mail
dbname =  postfix
table = users
select_field = uid
where_field = address
hosts = localhost
  
gids.cf
  
user = mail
password = mail
dbname =  postfix
table = users
select_field = gid
where_field = address
hosts = localhost
  
virtual.cf
  
user = mail
password = mail
dbname =  postfix
table = virtual
select_field = goto
where_field = address
hosts = localhost

il vous manque la sructure de ma base de donnée.

CREATE DATABASE `postfix` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `postfix`;

CREATE TABLE `transport` (
  `domain` varchar(255) NOT NULL,
  `transport` varchar(255) NOT NULL,
  UNIQUE KEY `domain` (`domain`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

INSERT INTO `transport` (`domain`, `transport`) VALUES 
('97x.fr', 'virtual:');

CREATE TABLE `users` (
  `id` varchar(128) NOT NULL,
  `address` varchar(128) NOT NULL,
  `crypt` varchar(128) NOT NULL,
  `clear` varchar(128) NOT NULL,
  `name` varchar(128) NOT NULL,
  `uid` int(11) NOT NULL default '1000',
  `gid` int(11) NOT NULL default '1000',
  `home` varchar(128) NOT NULL default '/',
  `domain` varchar(128) NOT NULL,
  `maildir` varchar(255) NOT NULL,
  `imapok` tinyint(3) NOT NULL,
  `bool1` tinyint(3) NOT NULL default '1',
  `bool2` tinyint(3) NOT NULL default '1',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `address` (`address`),
  UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

INSERT INTO `users` (`id`, `address`, `crypt`, `clear`, `name`, `uid`, `gid`, `home`, `domain`, `maildir`, `imapok`, `bool1`, `bool2`) VALUES 
('alexandre@97x.fr', 'alexandre@97x.fr', '0000', '0000', 'laurencin alexandre', 1000, 1000, '/etc/postfix/', '97x.fr', '/var/www/www/Maildir/alexandre/', 1, 1, 1);

CREATE TABLE `virtual` (
  `address` varchar(255) NOT NULL,
  `goto` varchar(255) NOT NULL,
  UNIQUE KEY `address` (`address`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

INSERT INTO `virtual` (`address`, `goto`) VALUES 
('webmaster@97x.fr', 'alexandre@97x.fr');

CREATE DATABASE `sqmaildb` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `sqmaildb`;

CREATE TABLE `address` (
  `owner` varchar(50) default NULL,
  `nickname` varchar(50) default NULL,
  `firstname` varchar(50) default NULL,
  `lastname` varchar(50) default NULL,
  `email` varchar(50) default NULL,
  `label` varchar(50) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


CREATE TABLE `global_abook` (
  `owner` varchar(128) NOT NULL default '',
  `nickname` varchar(16) NOT NULL default '',
  `firstname` varchar(128) NOT NULL default '',
  `lastname` varchar(128) NOT NULL default '',
  `email` varchar(128) NOT NULL default '',
  `label` varchar(255) default NULL,
  PRIMARY KEY  (`owner`,`nickname`),
  KEY `firstname` (`firstname`,`lastname`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


CREATE TABLE `userprefs` (
  `user` varchar(50) NOT NULL,
  `prefkey` varchar(50) NOT NULL,
  `prefval` varchar(50) NOT NULL,
  PRIMARY KEY  (`user`,`prefkey`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

INSERT INTO `userprefs` (`user`, `prefkey`, `prefval`) VALUES 
('', '', '');

pour ceux qui ont lu jusqu'ici, merci !! tongue

je vous donne maintenant ma configuration pour courier fichier apres fichier.
(je vous aie enlevé tout les commentaires pour prendre moins de place)

/etc/courier/authdaemonrc :

authmodulelist="authmysql authpam"
authmodulelistorig="authmysql authcustom authcram authuserdb authldap authpam"
daemons=5 #Libre à vous de le modifier
version="authdaemond.mysql"
authdaemonvar=/var/run/courier/authdaemon


/etc/courier/authmysqlrc :
MYSQL_SERVER 127.0.0.1
MYSQL_USERNAME postfix
MYSQL_PASSWORD postfix
MYSQL_USER_TABLE users
MYSQL_DATABASE  postfix
MYSQL_SOCKET /var/run/mysqld/mysqld.sock #Connexion locale
MYSQL_PORT 0
MYSQL_OPT 0
MYSQL_CRYPT_PWFIELD crypt
DEFAULT_DOMAIN 97x.fr #Permet d'autoajouter ce domaine à  la fin des noms d'utilisateur si le domaine n'est pas spécifié
MYSQL_UID_FIELD uid
MYSQL_GID_FIELD gid
MYSQL_LOGIN_FIELD id
MYSQL_HOME_FIELD home
MYSQL_NAME_FIELD name
MYSQL_MAILDIR_FIELD maildir
MYSQL_WHERE_CLAUSE imapok=1 AND bool1=1 AND bool2=1 #Vous rappelez vous de ces conditions ?

/etc/courier/imapd:
ADDRESS=0
PORT=143
MAXDAEMONS=40
MAXPERIP=20
PIDFILE=/var/run/courier/imapd.pid
TCPDOPTS="-nodnslookup -noidentlookup"
AUTHMODULES="authdaemon"
AUTHMODULES_ORIG="authdaemon"
DEBUG_LOGIN=0
AUTH=CRAM-SHA1 IDLE"
IMAP_CAPABILITY="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE"
IMAP_KEYWORDS=1
IMAP_CAPABILITY_ORIG="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 IDLE"
IMAP_IDLE_TIMEOUT=60
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_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
SENDMAIL=/usr/sbin/sendmail
HEADERFROM=X-IMAP-Sender
IMAPDSTART=YES

/etc/courier/pop3d:
PIDFILE=/var/run/courier/pop3d.pid
MAXDAEMONS=40
MAXPERIP=4
AUTHMODULES="authdaemon"
AUTHMODULES_ORIG="authdaemon"
DEBUG_LOGIN=0
POP3AUTH=""
POP3AUTH_ORIG="LOGIN CRAM-MD5 CRAM-SHA1"
POP3AUTH_TLS=""
POP3AUTH_TLS_ORIG="LOGIN PLAIN"
PORT=110
ADDRESS=0
TCPDOPTS="-nodnslookup -noidentlookup"
POP3DSTART=YES
MAILDIRPATH=Maildir/

Voila. je crois que vous savez tout, si ce n'est queje souhaitais aussi au depart avoir les maildir des utilisateurs dans le repertoire :
/var/www/www/Maildir
afin par la suite de pouvoir les creer en php ,(j'aurais fait une ptite admin sympa pour ca)

aussi le fait que je n'ai aucune érreur en mode konsole quand je lance les services, et quand j'envosi un mail.
celui ci est meme bien envoyé quand je regarde avec la commande "mailq". Pas d'erreur non plus dans le log de mail "/var/log/mail.log" .


La jpete un cable, mad je suis à vous si vous avez une solution.

ahh ,si , l'utilisateur mail, peut se connecter sans problème à la db, j'ai testé en console, mysql -u mail -p mail et je n'ai pas de problème non plus...

Merci à vous pour ceux qui liron jusqu'ici . tongue
vous seul pouvez m'aider..

à noter que je n'ai pas encore parlé de squirrelmail, je préfère procéder par étapes, et que les mails fonctionnent déja en local...
Que je puis enfin avoir qqchose quand je tappe : mail -s "sujet" alexandre@97x.fr, car pour l'instant tout ce que j'ai c'est : Pas ed courrier pour alexandre@97x.fr tongue

et comme je suis vraiment désespéré, pour ceux qui auraient la configuration chez eux qui fonctionne avec une base de donnée, je puex meme remplacer tout mes fichiers de conf par la leur, et meme la  structure de base de donnée.. wink

dites moi quels test, je peux faire, ou vers ou chercher.. je le fait ...

#2 Le 03/10/2006, à 16:09

Tr!n!Ty

Re : Pétage de tête avec un serveur mail

dans tes log mysql tu vois les requetes quand un mail est envoyé ?
parce que la syntaxe des requetes a changé avec la nouvelle version de postfix


Ubuntu 7.04 - Feisty Fawn & Beryl
Laptop Fujitsu : Pentuim M 1.7, 512 DDR, ATI 9700 SE
PC : P4 3ghz (HT) 2Go DDR GFX 6600le/ P4 1.5Ghz, 512 DDR, GFX 5200 Le
DediboX & OVH sous Ubuntu Server 6.10

Hors ligne

#3 Le 12/10/2006, à 22:22

Keneyda

Re : Pétage de tête avec un serveur mail

Bonjour,

Je suis en train d'installer (enfin j'essaye) aussi un serveur de mail (postfix, mysql, courrier...), j'ai vu un tuto plutot bien fait  sur http://lea-linux.org/cached/index/Postfix-courier-mysql-quota-spamassassin-amavis.html
qui a quelques erreurs mais que l'on peut facilement modifier.

Keneyda

Hors ligne