Configurazione Postfix · 3 min read · Dec 31, 2025

Server Groupware Con Group-Office, Postfix, Dovecot E SpamAssassin Su Debian Lenny (5.0) - Pagina 2

Configura Postfix

Postfix deve essere configurato per utilizzare MySQL:

Le seguenti variabili in main.cf. Inizia con il riempire alcune informazioni di 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'

Ora configurarlo per utenti virtuali in 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'utente che stai cercando di contattare ha superato la propria 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'

Utilizzeremo la consegna 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'

Crea il database di trasporto:

# cd /etc/postfix  
# postmap transport

Postfix è stato installato con supporto MySQL, ma ciò non significa che sappia già come utilizzare il nostro database. Deve essere fornito con varie informazioni di query SQL per ogni tipo di tabella nel nostro database. Queste informazioni sono memorizzate nei file MySQL definiti nel file 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'

Aggiungi l’utente di posta:

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

Modifica master.cf di Postfix:

Modifica la prima riga con il servizio smtp:

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

Dopo quella riga aggiungi:

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}

Agli interfaccie con software non Postfix aggiungi:

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

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.