Serveur Groupware · 3 min read · Dec 31, 2025

Serveur de Groupware Avec Group-Office, Postfix, Dovecot Et SpamAssassin Sur Debian Lenny (5.0) - Page 2

Configurer Postfix

Postfix doit être configuré pour utiliser MySQL :

Les variables suivantes dans main.cf. Commencez par remplir quelques informations de base :

# postconf -e 'myhostname = mx-1.example.com'  
# postconf -e 'smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)'  
# postconf -e 'biff = no'  
# postconf -e 'append_dot_mydomain = no'  
# postconf -e 'myorigin = example.com'  
# postconf -e 'mydestination = $myhostname, localhost, locahost.localdomain'  
# postconf -e 'mynetworks = 127.0.0.0/8'  
# postconf -e 'recipient_delimiter = +'  
# postconf -e 'inet_interfaces = all'  
# postconf -e 'proxy_read_maps = $local_recipient_maps $mydestination \  
    $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps \  
    $virtual_mailbox_domains $relay_recipient_maps $relay_domains \  
    $canonical_maps $sender_canonical_maps $recipient_canonical_maps \  
    $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps'   
  
# postconf -e 'smtpd_recipient_restrictions = \  
    permit_mynetworks, \  
    reject_unauth_destination, \  
    reject_rbl_client zen.spamhaus.org, \  
    reject_rbl_client list.dsbl.org, \  
    permit'  
# postconf -e 'message_size_limit=52428800'  
# postconf -e 'mailbox_size_limit=0'

Maintenant configurez-le pour les utilisateurs virtuels dans MySQL :

# postconf -e 'virtual_alias_domains ='  
# postconf -e 'virtual_alias_maps = proxy:mysql:$config_directory/mysql_virtual_alias_maps.cf'  
# postconf -e 'virtual_mailbox_domains = proxy:mysql:$config_directory/mysql_virtual_domains_maps.cf'  
# postconf -e 'virtual_mailbox_maps = proxy:mysql:$config_directory/mysql_virtual_mailbox_maps.cf'  
# postconf -e 'virtual_mailbox_base = /vmail'  
# postconf -e 'virtual_minimum_uid = 150'  
# postconf -e 'virtual_uid_maps = static:150'  
# postconf -e 'virtual_gid_maps = static:8'  
# postconf -e 'virtual_create_maildirsize = yes'  
# postconf -e 'virtual_mailbox_extended = yes'  
# postconf -e 'virtual_mailbox_limit_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf'  
# postconf -e 'virtual_mailbox_limit_override = yes'  
# postconf -e 'virtual_maildir_limit_message = "L'utilisateur que vous essayez d'atteindre a dépassé son quota."'  
# postconf -e 'virtual_overquota_bounce = yes'  
# postconf -e 'transport_maps = proxy:mysql:/etc/postfix/mysql_virtual_transports.cf'  
# postconf -e 'relay_domains = proxy:mysql:/etc/postfix/mysql_relay_domains_maps.cf'

Nous allons utiliser la livraison Dovecot :

# postconf -e 'virtual_transport=dovecot'  
# postconf -e 'dovecot_destination_recipient_limit=1'  
# postconf -e 'transport_maps = hash:/etc/postfix/transport'  
# postconf -e 'smtpd_data_restrictions = reject_unauth_pipelining, reject_multi_recipient_bounce, permit'  
# postconf -e 'vacation_destination_recipient_limit = 1'

Créez la base de données de transport :

# cd /etc/postfix  
# postmap transport

Postfix a été installé avec le support MySQL, mais cela ne signifie pas qu’il sait déjà comment utiliser notre base de données. Il doit être fourni avec diverses informations de requête SQL pour chaque type de table dans notre base de données. Ces informations sont stockées dans les fichiers MySQL définis dans le fichier main.cf :

/etc/postfix/mysql_virtual_alias_maps.cf :

user = vmail_user
password = vmail_user_password
hosts = localhost
dbname = groupoffice
table = pa_aliases
select_field = goto
where_field = address
additional_conditions = and active = '1'

/etc/postfix/mysql_virtual_domains_maps.cf :

user = vmail_user
password = vmail_user_password
hosts = localhost
dbname = groupoffice
table = pa_domains
select_field = domain
where_field = domain
additional_conditions = and backupmx = '0' and active = '1'

/etc/postfix/mysql_virtual_mailbox_limit_maps.cf :

user = vmail_user
password = vmail_user_password
hosts = localhost
dbname = groupoffice
table = pa_mailboxes
select_field = quota
where_field = username
additional_conditions = and active = '1'

/etc/postfix/mysql_virtual_mailbox_maps.cf :

user = vmail_user
password = vmail_user_password
hosts = localhost
dbname = groupoffice
table = pa_mailboxes
select_field = maildir
where_field = username
additional_conditions = and active = '1'

/etc/postfix/mysql_virtual_transports.cf :

user = vmail_user
password = vmail_user_password
hosts = localhost
dbname = groupoffice
table = pa_domains
select_field = transport
where_field = domain
additional_conditions = and active = '1'

/etc/postfix/mysql_relay_domains_maps.cf :

user = vmail_user
password = vmail_user_password
hosts = localhost
dbname = groupoffice
table = pa_domains
select_field = domain
where_field = domain
additional_conditions = and backupmx = '1' and active = '1'

Ajoutez l’utilisateur de messagerie :

# useradd -r -u 150 -g mail -d /var/vmail -s /sbin/nologin -c "Mailbox Virtuel" vmail  
# mkdir /vmail  
# chmod 770 /vmail/  
# chown vmail:mail /vmail/

Éditez master.cf de Postfix :

Modifiez la première ligne avec le service smtp :

smtp      inet  n       -       -       -       -       smtpd
    -o content_filter=spamassassin

Après cette ligne, ajoutez :

spamassassin unix -     n       n       -       -       pipe
    user=spamd argv=/usr/bin/spamc -f -e
    /usr/sbin/sendmail -oi -f ${sender} ${recipient}
dovecot   unix  -       n       n       -       -       pipe
    flags=DRhu user=vmail:mail argv=/usr/lib/dovecot/deliver -d ${recipient}

Aux interfaces vers des logiciels non-Postfix, ajoutez :

vacation    unix  -       n       n       -       -       pipe
  flags=Rq user=vacation argv=/var/spool/vacation/vacation.pl -f ${sender} -- ${recipient}
Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.