[Postfix] Virtuals users

Questions et astuces concernant l'installation et la configuration d'archlinux
Avatar de l’utilisateur
Feng
yeomen
Messages : 273
Inscription : mer. 07 avr. 2010, 20:19

[Postfix] Virtuals users

Message par Feng »

Bonjour,

Voulant installer un serveur mail sur mon dédié fraîchement Archlinuquisé ( \o/ ), j'ai installé postfix, dovecot et enfin postfixAdmin.
Je peux envoyer des mails, me connecter en imap ou pop3 depuis mon client de messagerie ; tout va bien me direz-vous !

Et bien non !

Voulant vérifier que tout fonctionne comme attendu, j'ai créé un nouveau compte. Il ne fonctionnait pas. J'ai vidé la base postfix et je l'ai repeuplé avec postfixAdmin. C'est la que j'ai compris que postfix et postfixAdmin ne se comprenaient pas ! Et finalement, plus rien ne marchait à part l'envoi d'email avec Apache(PHP).

En fait je ne comprends pas du tout comment les 3 gugus (postfix dovecot & postfixadmin) peuvent communiquer : postfix encode le user password avec ENCRYPT de mysql, dovecot & postfixadmin avec CRAM-MD5, ils vont chercher dans des tables différentes... je suis un peu perdu :/

:surrender:

Objectif :

Utilisation de compte mails virtuels uniquement, via MySQL.
Administration des comptes avec PostfixAdmin.
Envoyer des mails via le serveur postfix.
Pouvoir se connecter en TLS://SMTP, POP3(S) et IMAP(S) depuis un client mail.


Voici la situation actuelle :

Aucune erreur au démarrage des démons postfix & dovecot.
La connexion aux différents services fonctionne pour le compte contact@domaine.tld

Si je créé une nouvelle entrée dans la base, pour la table users (utilisée pour l'authentification par postfix si j'ai bien compris) et une dans la table mailbox (via postfixAdmin) : je ne peux rien faire avec cette adresse.

J'ai tenté d'envoyer un mail à cette adresse, et le répertoire n'est pas créé dans /home/vmailer/domaine.tld. Impossible de se connecter en pop3 sur cette adresse :
log a écrit :dovecot: auth-worker(31481): mysql(localhost): Connected to database postfix
dovecot: pop3-login: Login: user=<test@domaine.tld>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=31484, secured, session=<YCgY6wPEOQB/AAAB>
dovecot: pop3(test@domaine.tld): Error: user test@domaine.tld: Initialization failed: Initializing mail storage from mail_location setting failed: Ambiguous mail location setting, don't know what to do with it: domaine.tld/test@domaine.tld/ (try prefixing it with mbox: or maildir:)
dovecot: pop3(test@domaine.tld): Error: Invalid user settings. Refer to server log for more information.

Toute la config :

postconf -n

Code : Tout sélectionner

alias_database = $alias_maps
alias_maps = hash:/etc/postfix/aliases
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/lib/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
html_directory = no
inet_interfaces = all
inet_protocols = ipv4
mail_owner = postfix
mailq_path = /usr/bin/mailq
manpage_directory = /usr/share/man
mydestination = localhost
mydomain = domaine.tld
myhostname = mail.domaine.tld
mynetworks_style = host
myorigin = $myhostname
newaliases_path = /usr/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = no
recipient_delimiter = +
relay_domains = localhost
sample_directory = /etc/postfix/sample
sendmail_path = /usr/sbin/sendmail
setgid_group = postdrop
smtpd_banner = $myhostname ESMTP $mail_name (Archlinux)                                                                                                                                                                          
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination                                                                                                                           
smtpd_sasl_auth_enable = yes                                                                                                                                                                                                     
smtpd_sasl_local_domain = $mydomain                                                                                                                                                                                              
smtpd_sasl_path = private/auth                                                                                                                                                                                                   
smtpd_sasl_security_options = noanonymous                                                                                                                                                                                        
smtpd_sasl_tls_security_options = $smtpd_sasl_security_options                                                                                                                                                                   
smtpd_sasl_type = dovecot                                                                                                                                                                                                        
smtpd_tls_auth_only = no                                                                                                                                                                                                         
smtpd_tls_cert_file = /etc/ssl/certs/server.crt                                                                                                                                                                                  
smtpd_tls_key_file = /etc/ssl/private/server.key                                                                                                                                                                                 
smtpd_tls_loglevel = 1                                                                                                                                                                                                           
smtpd_tls_security_level = may                                                                                                                                                                                                   
unknown_local_recipient_reject_code = 550                                                                                                                                                                                        
virtual_alias_maps = hash:/etc/postfix/virtual_alias, mysql:/etc/postfix/mysql_virtual_forwards.cf                                                                                                                               
virtual_gid_maps = static:5003                                                                                                                                                                                                   
virtual_mailbox_base = /home/vmailer                                                 
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains.cf
virtual_mailbox_limit = 5120000000
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailboxes.cf
virtual_minimum_uid = 5003
virtual_uid_maps = static:5003
/etc/postfix/mysql_virtual_domains.cf

Code : Tout sélectionner

user = postfixuser
password = *
hosts = localhost
dbname = postfix
table = domains
select_field = 'virtual'
where_field = domain
/etc/postfix/mysql_virtual_forwards.cf

Code : Tout sélectionner

user = postfixuser
password = *
hosts = localhost
dbname = postfix
table = forwardings
select_field = destination
where_field = source
/etc/postfix/mysql_virtual_mailboxes.cf

Code : Tout sélectionner

user = postfixuser
password = *
hosts = localhost
dbname = postfix
table = username
select_field = maildir
where_field = username
doveconf -n

Code : Tout sélectionner

auth_mechanisms = PLAIN CRAM-MD5
auth_verbose = yes
base_dir = /var/run/dovecot/
mail_location = maildir:/home/vmailer/%d/%u
passdb {
  args = /etc/dovecot/dovecot-sql.conf
  driver = sql
}
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
  }
}
ssl_cert = </etc/ssl/certs/server.crt
ssl_key = </etc/ssl/private/server.key
userdb {
  args = /etc/dovecot/dovecot-sql.conf
  driver = sql
}
/etc/dovecot/dovecot-sql.conf

Code : Tout sélectionner

driver = mysql
connect = host=localhost dbname=postfix user=postfixuser password=*
default_pass_scheme = CRAM-MD5

password_query = SELECT password FROM mailbox WHERE username = '%u' AND active = '1'
user_query = SELECT maildir AS mail, 5003 AS uid, 5003 AS gid, "/home/vmailer" AS home FROM mailbox WHERE username = '%u' AND active = '1'
/usr/share/webapps/postfixAdmin/config.inc.php

Code : Tout sélectionner

<?php

$CONF['configured'] = true;
$CONF['setup_password'] = '****************************************************';
$CONF['postfix_admin_url'] = 'http://xxx.xxx.xxx.xxx/postfixAdmin';
$CONF['postfix_admin_path'] = dirname(__FILE__);
$CONF['default_language'] = 'fr';

$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfixuser';
$CONF['database_password'] = '*';
$CONF['database_name'] = 'postfix';

$CONF['database_prefix'] = '';
$CONF['database_tables'] = array (
    'admin' => 'admin',
    'alias' => 'alias',
    'alias_domain' => 'alias_domain',
    'config' => 'config',
    'domain' => 'domain',
    'domain_admins' => 'domain_admins',
    'fetchmail' => 'fetchmail',
    'log' => 'log',
    'mailbox' => 'mailbox',
    'vacation' => 'vacation',
    'vacation_notification' => 'vacation_notification',
    'quota' => 'quota',
    'quota2' => 'quota2',
);

$CONF['admin_email'] = 'postmaster@domaine.tld';

$CONF['smtp_server'] = 'www.domaine.tld';
$CONF['smtp_port'] = '25';

$CONF['encrypt'] = 'dovecot:CRAM-MD5';

$CONF['authlib_default_flavor'] = 'md5raw';

$CONF['dovecotpw'] = "/usr/bin/doveadm pw";

$CONF['min_password_length'] = 5;

$CONF['generate_password'] = 'NO';

$CONF['show_password'] = 'NO';

$CONF['page_size'] = '10';

$CONF['default_aliases'] = array (
    'abuse' => 'abuse@domaine.tld',
    'hostmaster' => 'hostmaster@domaine.tld',
    'postmaster' => 'postmaster@domaine.tld',
    'webmaster' => 'webmaster@domaine.tld'
);

$CONF['domain_path'] = 'YES';
$CONF['domain_in_mailbox'] = 'YES';
$CONF['maildir_name_hook'] = 'NO';


$CONF['aliases'] = '10';
$CONF['mailboxes'] = '10';
$CONF['maxquota'] = '5120';

$CONF['quota'] = 'NO';
$CONF['quota_multiplier'] = '1024000';

$CONF['transport'] = 'NO';
$CONF['transport_options'] = array (
    'virtual',  // for virtual accounts
    'local',    // for system accounts
    'relay'     // for backup mx
);
$CONF['transport_default'] = 'virtual';

$CONF['vacation'] = 'NO';
$CONF['vacation_domain'] = 'autoreply.change-this-to-your.domain.tld';

$CONF['vacation_control'] ='YES';

$CONF['vacation_control_admin'] = 'YES';


$CONF['alias_control'] = 'NO';
$CONF['alias_control_admin'] = 'NO';
$CONF['special_alias_control'] = 'NO';
$CONF['alias_goto_limit'] = '0';
$CONF['alias_domain'] = 'YES';
$CONF['backup'] = 'YES';
$CONF['sendmail'] = 'YES';
$CONF['logging'] = 'YES';
$CONF['fetchmail'] = 'YES';
$CONF['fetchmail_extra_options'] = 'NO';

$CONF['show_header_text'] = 'NO';
$CONF['header_text'] = ':: Postfix Admin ::';

$CONF['user_footer_link'] = "http://change-this-to-your.domain.tld/main";

$CONF['show_footer_text'] = 'YES';
$CONF['footer_text'] = 'Return to change-this-to-your.domain.tld';
$CONF['footer_link'] = 'http://change-this-to-your.domain.tld';

$CONF['welcome_text'] = <<<EOM
Hi,

Welcome to your new account.
EOM;

$CONF['emailcheck_resolve_domain']='YES';

$CONF['show_status']='NO';
$CONF['show_status_key']='NO';
$CONF['show_status_text']='&nbsp;&nbsp;';
$CONF['show_undeliverable']='NO';
$CONF['show_undeliverable_color']='tomato';
$CONF['show_undeliverable_exceptions']=array("unixmail.domain.ext","exchangeserver.domain.ext","gmail.com");
$CONF['show_popimap']='NO';
$CONF['show_popimap_color']='darkgrey';
$CONF['show_custom_domains']=array("subdomain.domain.ext","domain2.ext");
$CONF['show_custom_colors']=array("lightgreen","lightblue");
$CONF['recipient_delimiter'] = "+";


$CONF['create_mailbox_subdirs_prefix']='INBOX.';
$CONF['used_quotas'] = 'NO';
$CONF['new_quota_table'] = 'NO';


$CONF['theme_logo'] = 'images/logo-default.png';
$CONF['theme_css'] = 'css/default.css';

$CONF['xmlrpc_enabled'] = false;


if (file_exists(dirname(__FILE__) . '/config.local.php')) {
    include(dirname(__FILE__) . '/config.local.php');
}
BDD Postffix

Code : Tout sélectionner

-- phpMyAdmin SQL Dump
-- version 3.5.1
-- http://www.phpmyadmin.net
--
-- Client: localhost
-- Généré le: Mer 04 Juillet 2012 à 18:30
-- Version du serveur: 5.5.25-log
-- Version de PHP: 5.4.4

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Base de données: `postfix`
--

-- --------------------------------------------------------

--
-- Structure de la table `admin`
--

CREATE TABLE IF NOT EXISTS `admin` (
  `username` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  `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=latin1 COMMENT='Postfix Admin - Virtual Admins';

--
-- Contenu de la table `admin`
--

INSERT INTO `admin` (`username`, `password`, `created`, `modified`, `active`) VALUES
('postmaster@domaine.tld', 'bd500fb8ed26089fa7a54aedf9712dcd0d9b6cbf9a2739e9dc9f4f5a38a809fe', '2012-07-02 20:55:22', '2012-07-02 20:55:22', 1);

-- --------------------------------------------------------

--
-- Structure de la table `alias`
--

CREATE TABLE IF NOT EXISTS `alias` (
  `address` varchar(255) NOT NULL,
  `goto` text NOT NULL,
  `domain` varchar(255) NOT NULL,
  `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 (`address`),
  KEY `domain` (`domain`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Postfix Admin - Virtual Aliases';

--
-- Contenu de la table `alias`
--

INSERT INTO `alias` (`address`, `goto`, `domain`, `created`, `modified`, `active`) VALUES
('contact@domaine.tld', 'contact@domaine.tld', 'domaine.tld', '2012-07-02 20:56:13', '2012-07-02 20:56:13', 1);

-- --------------------------------------------------------

--
-- Structure de la table `alias_domain`
--

CREATE TABLE IF NOT EXISTS `alias_domain` (
  `alias_domain` varchar(255) NOT NULL,
  `target_domain` varchar(255) NOT NULL,
  `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 (`alias_domain`),
  KEY `active` (`active`),
  KEY `target_domain` (`target_domain`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Postfix Admin - Domain Aliases';

-- --------------------------------------------------------

--
-- Structure de la table `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' AUTO_INCREMENT=2 ;

--
-- Contenu de la table `config`
--

INSERT INTO `config` (`id`, `name`, `value`) VALUES
(1, 'version', '740');

-- --------------------------------------------------------

--
-- Structure de la table `domain`
--

CREATE TABLE IF NOT EXISTS `domain` (
  `domain` varchar(255) NOT NULL,
  `description` varchar(255) CHARACTER SET utf8 NOT NULL,
  `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) NOT 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=latin1 COMMENT='Postfix Admin - Virtual Domains';

--
-- Contenu de la table `domain`
--

INSERT INTO `domain` (`domain`, `description`, `aliases`, `mailboxes`, `maxquota`, `quota`, `transport`, `backupmx`, `created`, `modified`, `active`) VALUES
('ALL', '', 0, 0, 0, 0, '', 0, '0000-00-00 00:00:00', '0000-00-00 00:00:00', 1),
('domaine.tld', '', 0, 0, 5120, 0, 'virtual', 0, '2012-07-02 20:55:52', '2012-07-02 20:55:52', 1);

-- --------------------------------------------------------

--
-- Structure de la table `domains`
--

CREATE TABLE IF NOT EXISTS `domains` (
  `domain` varchar(50) NOT NULL DEFAULT '',
  PRIMARY KEY (`domain`),
  UNIQUE KEY `domain` (`domain`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- --------------------------------------------------------

--
-- Structure de la table `domain_admins`
--

CREATE TABLE IF NOT EXISTS `domain_admins` (
  `username` varchar(255) NOT NULL,
  `domain` varchar(255) NOT NULL,
  `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=latin1 COMMENT='Postfix Admin - Domain Admins';

--
-- Contenu de la table `domain_admins`
--

INSERT INTO `domain_admins` (`username`, `domain`, `created`, `active`) VALUES
('postmaster@domaine.tld', 'ALL', '2012-07-02 20:55:22', 1);

-- --------------------------------------------------------

--
-- Structure de la table `fetchmail`
--

CREATE TABLE IF NOT EXISTS `fetchmail` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `mailbox` varchar(255) NOT NULL,
  `src_server` varchar(255) NOT NULL,
  `src_auth` enum('password','kerberos_v5','kerberos','kerberos_v4','gssapi','cram-md5','otp','ntlm','msn','ssh','any') CHARACTER SET utf8 DEFAULT NULL,
  `src_user` varchar(255) NOT NULL,
  `src_password` varchar(255) NOT NULL,
  `src_folder` varchar(255) NOT NULL,
  `poll_time` int(11) unsigned NOT NULL DEFAULT '10',
  `fetchall` tinyint(1) unsigned NOT NULL DEFAULT '0',
  `keep` tinyint(1) unsigned NOT NULL DEFAULT '0',
  `protocol` enum('POP3','IMAP','POP2','ETRN','AUTO') CHARACTER SET utf8 DEFAULT NULL,
  `usessl` tinyint(1) unsigned NOT NULL DEFAULT '0',
  `extra_options` text,
  `returned_text` text,
  `mda` varchar(255) NOT NULL,
  `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

-- --------------------------------------------------------

--
-- Structure de la table `forwardings`
--

CREATE TABLE IF NOT EXISTS `forwardings` (
  `source` varchar(80) NOT NULL DEFAULT '',
  `destination` text NOT NULL,
  PRIMARY KEY (`source`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- --------------------------------------------------------

--
-- Structure de la table `log`
--

CREATE TABLE IF NOT EXISTS `log` (
  `timestamp` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `username` varchar(255) NOT NULL,
  `domain` varchar(255) NOT NULL,
  `action` varchar(255) NOT NULL,
  `data` text NOT NULL,
  KEY `timestamp` (`timestamp`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Postfix Admin - Log';

--
-- Contenu de la table `log`
--

INSERT INTO `log` (`timestamp`, `username`, `domain`, `action`, `data`) VALUES
('2012-07-02 20:56:13', 'postmaster@domaine.tld (82.233.72.201)', 'domaine.tld', 'create_mailbox', 'contact@domaine.tld');

-- --------------------------------------------------------

--
-- Structure de la table `mailbox`
--

CREATE TABLE IF NOT EXISTS `mailbox` (
  `username` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  `name` varchar(255) CHARACTER SET utf8 NOT NULL,
  `maildir` varchar(255) NOT NULL,
  `quota` bigint(20) NOT NULL DEFAULT '0',
  `local_part` varchar(255) NOT NULL,
  `domain` varchar(255) NOT NULL,
  `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`),
  KEY `domain` (`domain`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Postfix Admin - Virtual Mailboxes';

--
-- Contenu de la table `mailbox`
--

INSERT INTO `mailbox` (`username`, `password`, `name`, `maildir`, `quota`, `local_part`, `domain`, `created`, `modified`, `active`) VALUES
('contact@domaine.tld', '598e120cc4ce947fb33cca0d735bb7094151a9673e00cc91b1df7622a9d1dfa8', 'Equipe LePireDuNet.fr', 'domaine.tld/contact@domaine.tld/', 0, 'contact', 'domaine.tld', '2012-07-02 20:56:13', '2012-07-02 20:56:13', 1);

-- --------------------------------------------------------

--
-- Structure de la table `quota`
--

CREATE TABLE IF NOT EXISTS `quota` (
  `username` varchar(255) CHARACTER SET latin1 NOT NULL,
  `path` varchar(100) CHARACTER SET latin1 NOT NULL,
  `current` bigint(20) DEFAULT NULL,
  PRIMARY KEY (`username`,`path`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- --------------------------------------------------------

--
-- Structure de la table `quota2`
--

CREATE TABLE IF NOT EXISTS `quota2` (
  `username` varchar(100) CHARACTER SET latin1 NOT NULL,
  `bytes` bigint(20) NOT NULL DEFAULT '0',
  `messages` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- --------------------------------------------------------

--
-- Structure de la table `users`
--

CREATE TABLE IF NOT EXISTS `users` (
  `email` varchar(80) NOT NULL DEFAULT '',
  `password` varchar(20) NOT NULL DEFAULT '',
  `quota` varchar(20) NOT NULL DEFAULT '20971520',
  `domain` varchar(255) NOT NULL DEFAULT '',
  UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Contenu de la table `users`
--

INSERT INTO `users` (`email`, `password`, `quota`, `domain`) VALUES
('contact@domaine.tld', 'ZHYXCw3jzEJVY', '20971520', 'domaine.tld');

-- --------------------------------------------------------

--
-- Structure de la table `vacation`
--

CREATE TABLE IF NOT EXISTS `vacation` (
  `email` varchar(255) NOT NULL,
  `subject` varchar(255) CHARACTER SET utf8 NOT NULL,
  `body` text CHARACTER SET utf8 NOT NULL,
  `cache` text NOT NULL,
  `domain` varchar(255) NOT NULL,
  `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL DEFAULT '1',
  PRIMARY KEY (`email`),
  KEY `email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Postfix Admin - Virtual Vacation';

-- --------------------------------------------------------

--
-- Structure de la table `vacation_notification`
--

CREATE TABLE IF NOT EXISTS `vacation_notification` (
  `on_vacation` varchar(255) CHARACTER SET latin1 NOT NULL,
  `notified` varchar(255) NOT NULL,
  `notified_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`on_vacation`,`notified`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Postfix Admin - Virtual Vacation Notifications';

--
-- Contraintes pour les tables exportées
--

--
-- Contraintes pour la table `vacation_notification`
--
ALTER TABLE `vacation_notification`
  ADD CONSTRAINT `vacation_notification_pkey` FOREIGN KEY (`on_vacation`) REFERENCES `vacation` (`email`) ON DELETE CASCADE;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

BONUS : Si quelqu'un peut m'expliquer pourquoi en local je n'ai pas besoin de m'authentifier pour envoyer des mails via le serveur SMTP alors que GMail par exemple me demande un couple login/pass pour se connecter , je suis preneur :)
Enfin je comprends le principe : il faut bien s'authentifier, mais où est définie cette authentification (table users ?) et pourquoi elle ne s'applique pas avec telnet ? Auth nécessaire que depuis l'extérieur ?
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10707
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [Postfix] Virtuals users

Message par FoolEcho »

Salut,

C'est pas mon rayon du tout, donc je passe mon tour.

Mais as-tu bien fait le tour des wikis ?
Postfix
SOHO_Postfix
(à mon avis pour des explications fines, ça passe plutôt par les projets respectifs... et/ou un prof/connaisseur/admin réseau)
«The following statement is not true. The previous statement is true.» :nage:
Avatar de l’utilisateur
Feng
yeomen
Messages : 273
Inscription : mer. 07 avr. 2010, 20:19

Re: [Postfix] Virtuals users

Message par Feng »

Ohhhhhhhhh oui, j'ai fais TOUS les wiki, postfix, soho, les backpages des ces wiki, wiki dovecot officiel, IRC archlinux postfix dovecot ...

Aucun wiki à part celui de dovecot n'est à jour, aucun article sur le web ne l'est non plus (en tout cas je n'en ai trouvé aucun), j'ai galéré des heures et des heures pour arriver au résultat actuel, rien que sur IRC j'ai 12h de logs ACTIF...
Avatar de l’utilisateur
Feng
yeomen
Messages : 273
Inscription : mer. 07 avr. 2010, 20:19

Re: [Postfix] Virtuals users

Message par Feng »

En tout cas je vous promets un truc : dès que cette install est fonctionnelle, je fais une page wiki appelée : A FUCKING WORKING e-mail server on Archlinux
Avatar de l’utilisateur
Zolive
Hankyu
Messages : 32
Inscription : ven. 25 mai 2012, 14:23

Re: [Postfix] Virtuals users

Message par Zolive »

Bonjour.

tout d'abord il faut comprendre les choses suivantes :

le service de courrier fonctionne avec des programmes différents sur des protocoles différents :
  • Le SMTP, ou comment le courrier transite
  • Le POP (Post Office Protocol) / IMAP (Internet Message Acces Protocol) ou comment le facteur délivre le courrier dans la BAL.
POSTFIX est un MTA ou mail transfert agent, Mutt, claws-Mail sont des MUA, mail user agent, les interfaces pour retirer ou envoyer le courrier.

POSTFIX à proprement parler :

il est très simple à configurer.
  • Il ne faut surtout pas, lorsque l'on découvre ce sujet essayer de réaliser une installation complexe, mais simple, la faire évoluer selon ses besoins.
  • Il ne faut surtout pas utiliser des logiciels effectuant des taches d'administration et de configuration automatique.
POSTFIX tout simplement :

Deux fichiers de configuration :
  • master.cf <--- Configuration des couches protocoles
  • main.cf <--- Configuration du service (comportement, nom du serveur...)
Enfin,
  • Il faut comprendre que sur un système unix le courrier est délivré sur le système de fichiers.
  • Il sert pour délivrer les mails locaux.
  • Il nécessite des utilisateurs systèmes.
Dans ton cas de figure, tu souhaites utiliser des utilisateurs virtuels c'est à dire sans compte système.

Pour cela tu souhaites utiliser une base de données utilisateurs, comprenant en général :
  • le domaine : mydomaine.tld
  • le login
  • le password crypté
  • éventuellement le password en clair
  • l'endroit ou sont déposé les mails pour la délivraison local
  • le type de BAL attendue (Maildir ou mailbox)
Je t'inviterai de prime abord :
  • configurer ton postfix en local uniquement (pour des users locaux)
  • configurer et générer tes alias (si tu écris a postmaster@domain.tld tu rediriges le mail vers alias@domain.tld)
  • tester l'envoi de mail vers un utilisateur du système : une session telnet localhost 25 où tu enchaîneras les commandes te permettra cette vérification
  • par la suite tu montera tes tables hash dans des fichiers pour les users et domaines virtuels
  • tu tests l'envoi d'un mail à : toto@unautredomaine.tld (via une session telnet)
  • tu crée ta base sur ton pseudo moteur SQL.
  • tu n'oublies pas de configurer le changement de fonctionnement attendu dans main.cf et un postfix reload derrière
  • tu n'oublies pas de configurer correctement authdaemond pour indiquer à POSTFIX comment accéder à la SGBD
  • tu choisis un server IMAP / POP (dovecot, courrier...)
  • tu repasses par la case authdaemon
  • tu testes ta sauce
  • tu aborderas ici quand tt est OK la couche SSL
Néanmoins je m'intrique de ne pas te voir utiliser un Anti Virus. Le servcice que tu up, est pour un frontal ?

dans ce cas, je me permet de te donner le conseil de faire attention à ce que tu mets en oeuvre.
Il te faudra une délégation MX vers ta machine etc etc...

Je peux t'aider pour toutes ces phases, du moment ou tu passes par la ligne de commande.

Une fois que tu sauras administrer ton bousin, tu pourras tester des outils semblant faciliter les choses.

Quand a ceci :
Feng a écrit :Ohhhhhhhhh oui, j'ai fais TOUS les wiki, postfix, soho, les backpages des ces wiki, wiki dovecot officiel, IRC archlinux postfix dovecot ...

Aucun wiki à part celui de dovecot n'est à jour, aucun article sur le web ne l'est non plus (en tout cas je n'en ai trouvé aucun), j'ai galéré des heures et des heures pour arriver au résultat actuel, rien que sur IRC j'ai 12h de logs ACTIF...
je t'invite à suivre ce lien, qui concerne OpenBSD mais qui si tu le suis tu sauras monter voir comprendre ce que tu fais :

http://www.kernel-panic.it/openbsd/mail/

Effectivement ce n'est pas dovecot, mais peu importe. le tout est de comprendre et non de suivre un pseudo howto userfriendly.

Poses tes questions :)

zolive.
Calme, en avant, droit.
(principe équestre)

Arch@Asus-X93SM-16Go-SSD OpenBox
Avatar de l’utilisateur
pascalp
Daikyu
Messages : 74
Inscription : sam. 14 juil. 2007, 18:06
Localisation : Utrecht

Re: [Postfix] Virtuals users

Message par pascalp »

Feng a écrit :Ohhhhhhhhh oui, j'ai fais TOUS les wiki, postfix, soho, les backpages des ces wiki, wiki dovecot officiel, IRC archlinux postfix dovecot ...

Aucun wiki à part celui de dovecot n'est à jour, aucun article sur le web ne l'est non plus (en tout cas je n'en ai trouvé aucun), j'ai galéré des heures et des heures pour arriver au résultat actuel, rien que sur IRC j'ai 12h de logs ACTIF...
Un wiki de plus:
http://doc.fedora-fr.org/wiki/Serveur_d ... ectronique

Il correspond au système que tu veux mettre en place. Après que soit archlinux ou fedora ou autre, aucune importance, c'est pareil :)
Avatar de l’utilisateur
pascalp
Daikyu
Messages : 74
Inscription : sam. 14 juil. 2007, 18:06
Localisation : Utrecht

Re: [Postfix] Virtuals users

Message par pascalp »

Zolive a écrit :Bonjour.

...
Jolie Intro, je vais peux-être en piquer des morceaux :)
Répondre