Postfix e MySQL · 4 min read · Jan 12, 2026

Utenti e Domini Virtuali Con Postfix, Courier, MySQL E SquirrelMail (Debian Squeeze) - Pagina 4

12 Test Postfix

Per vedere se Postfix è pronto per SMTP-AUTH e TLS, esegui

telnet localhost 25

Dopo aver stabilito la connessione al tuo server di posta Postfix, digita

ehlo localhost

Se vedi le righe

250-STARTTLS

e

250-AUTH LOGIN PLAIN

va tutto bene:

root@server1:/usr/local/sbin# telnet localhost 25  
 Trying 127.0.0.1...  
 Connected to localhost.localdomain.  
 Escape character is '^]'.  
 220 server1.example.com ESMTP Postfix (Debian/GNU)  
 ehlo localhost  
 250-server1.example.com  
 250-PIPELINING  
 250-SIZE 10240000  
 250-VRFY  
 250-ETRN  
 250-STARTTLS  
 250-AUTH LOGIN PLAIN  
 250-AUTH=LOGIN PLAIN  
 250-ENHANCEDSTATUSCODES  
 250-8BITMIME  
 250 DSN  
 quit  
 221 2.0.0 Bye  
 Connection closed by foreign host.  
 root@server1:/usr/local/sbin#

Digita

quit

per tornare alla shell di sistema.

13 Popola Il Database E Testa

Per popolare il database puoi usare la shell MySQL:

mysql -u root -p
USE mail;

Almeno devi creare voci nelle tabelle domains e users:

INSERT INTO `domains` (`domain`) VALUES ('example.com');  
 INSERT INTO `users` (`email`, `password`, `quota`) VALUES ('[email protected]', ENCRYPT('secret'), 10485760);

(Per favore fai attenzione a usare la sintassi ENCRYPT nella seconda istruzione INSERT per crittografare la password!)

Se vuoi fare voci nelle altre due tabelle, questo apparirebbe così:

INSERT INTO `forwardings` (`source`, `destination`) VALUES ('[email protected]', '[email protected]');  
 INSERT INTO `transport` (`domain`, `transport`) VALUES ('example.com', 'smtp:mail.example.com');

Per uscire dalla shell MySQL, digita

quit;

Per la maggior parte delle persone è più facile avere un’interfaccia grafica per MySQL; quindi puoi anche usare phpMyAdmin (in questo esempio sotto http://192.168.0.100/phpmyadmin/ o http://server1.example.com/phpmyadmin/) per amministrare il database mail. Ancora una volta, quando crei un utente, assicurati di usare la funzione ENCRYPT per crittografare la password:

Non penso di dover spiegare ulteriormente le tabelle domini e utenti.

La tabella forwardings può avere voci come le seguenti:

sourcedestination
[email protected][email protected]Inoltra le email per [email protected] a [email protected]
@example.com[email protected]Crea un account Catch-All per [email protected]. Tutte le email a example.com arriveranno a [email protected], tranne quelle che esistono nella tabella utenti (cioè, se [email protected] esiste nella tabella utenti, le email a [email protected] arriveranno comunque a [email protected]).
@example.com@anotherdomain.tldQuesto inoltra tutte le email a example.com allo stesso utente su anotherdomain.tld. Ad esempio, le email a [email protected] saranno inoltrate a [email protected].
[email protected][email protected], [email protected]Inoltra le email per [email protected] a due o più indirizzi email. Tutti gli indirizzi email elencati sotto destinazione ricevono una copia dell’email.

La tabella transport può avere voci come queste:

domaintransport
example.com:Consegna le email per example.com localmente. È come se questo record non esistesse affatto in questa tabella.
example.comsmtp:mail.anotherdomain.tldConsegna tutte le email per example.com tramite smtp al server mail.anotherdomain.com.
example.comsmtp:mail.anotherdomain.tld:2025Consegna tutte le email per example.com tramite smtp al server mail.anotherdomain.com, ma sulla porta 2025, non 25 che è la porta predefinita per smtp.

| example.com | smtp:[1.2.3.4]
smtp:[1.2.3.4]:2025
smtp:[mail.anotherdomain.tld] | Le parentesi quadre impediscono a Postfix di effettuare ricerche del record MX DNS per l’indirizzo tra parentesi quadre. Ha senso per gli indirizzi IP. | | .example.com | smtp:mail.anotherdomain.tld | La posta per qualsiasi sottodominio di example.com viene consegnata a mail.anotherdomain.tld. | | * | smtp:mail.anotherdomain.tld | Tutte le email vengono consegnate a mail.anotherdomain.tld. | | [email protected] | smtp:mail.anotherdomain.tld | Le email per [email protected] vengono consegnate a mail.anotherdomain.tld. |

Vedi

man transport

per ulteriori dettagli.

Per favore ricorda che l’ordine delle voci nella tabella transport è importante! Le voci saranno seguite dall’alto verso il basso.

Importante: Postfix utilizza un meccanismo di caching per i trasporti, quindi potrebbe volerci del tempo prima che le modifiche nella tabella transport abbiano effetto. Se vuoi che abbiano effetto immediatamente, esegui

postfix reload

dopo aver apportato le modifiche nella tabella transport.

14 Invia Una Email Di Benvenuto Per Creare Maildir

Quando crei un nuovo account email e provi a recuperare email da esso (con POP3/IMAP) probabilmente riceverai messaggi di errore che dicono che il Maildir non esiste. Il Maildir viene creato automaticamente quando arriva la prima email per il nuovo account. Pertanto è una buona idea inviare un’email di benvenuto a un nuovo account.

Per prima cosa, installiamo il pacchetto mailx:

apt-get install mailutils

Per inviare un’email di benvenuto a [email protected], facciamo così:

mailx [email protected]

Ti verrà chiesto di inserire l’oggetto. Digita l’oggetto (ad es. Benvenuto), poi premi INVIO, e nella riga successiva digita il tuo messaggio. Quando il messaggio è finito, premi di nuovo INVIO in modo da essere in una nuova riga, poi premi CTRL+D; se non vuoi inviare una copia dell’email, premi di nuovo INVIO:

root@server1:/usr/local/sbin# mailx [email protected]
Subject: Benvenuto <– INVIO
Benvenuto! Divertiti con il tuo nuovo account email. <– INVIO
<– CTRL+D
Cc: <– INVIO
root@server1:/usr/local/sbin#

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.