Come si configura un server di posta elettronica?


59

Il mio VPS esegue Ubuntu e vorrei poter ricevere e-mail sul mio dominio.

Come si configura facilmente un server di posta per farlo?


3
Ottima domanda, sto aspettando un'ottima risposta. Ho costruito un paio di server di posta nel corso degli anni e non è mai stato facile. Molte decisioni: quale server SMS, quale IMAP / POP, come archiviare la posta, come archiviare gli utenti ... Non riesco a dare una risposta facile .
Javier Rivera,

Risposte:


48

Ecco come ho installato la posta sui nostri computer di produzione. Questi sono i criteri di cui avevamo bisogno:

  • Account email
  • Alias ​​email (spedizionieri)
  • IMAP, POP3 e SMTP

"Facile" (tl; dr)

Innanzitutto, voglio affrontare quella che sembrerebbe la soluzione più semplice .

sudo tasksel install mail-server

Diversi problemi si sono verificati quando l'abbiamo provato: in primo luogo installa Dovecot, che va bene per la maggior parte, ma abbiamo ritenuto che Courier fosse il migliore dei due per le nostre esigenze. In secondo luogo, utilizza Postfix che è eccezionale, ma abbiamo anche bisogno di Exim in quanto è un server MTA / SMTP più potente. In terzo luogo, installa MySQL - nella configurazione che utilizzo preferiamo file flat per la configurazione in quanto è un punto di rottura in meno. Pensa cosa accadrebbe se MySQL si arrestasse in modo anomalo per qualche motivo sconosciuto. Altrimenti il ​​resto dei pacchetti è piuttosto semplice e facile da gestire per un piccolo servizio di posta (si pensi a 1-2 domini di posta elettronica in totale).

La nostra configurazione

Struttura delle directory

Ci allontaniamo leggermente dal percorso delle normali configurazioni ma facilita la gestione.

Tutta la nostra mail è memorizzato in /var/mail/virtual/<domain>/<user>/mailCosì per esempio i futuri sarò con email@example.com, fwd@example.com, foo@example.comper rappresentare un indirizzo email, uno spedizioniere di andare a example@gmail.com, rispettivamente, e un indirizzo non valido. Nell'esempio sopra sarebbe /var/mail/virtual/example.com/email/mail.

Mantengo anche un elenco di tutti i domini sul server /etc/valiasesma ne parlerò più avanti.

Postfix

Questa è più o meno la parte facile dell'installazione. Installa il postfixpacchetto.

exim

Installa Exim con apt-get install exim4 exim4-base exim4-config exim4-daemon-heavyUna volta installato dovrai modificare la configurazione predefinita di exim per sostituire o aggiungere i seguenti valori:

domainlist local_domains = @:localhost:dsearch;/etc/valiases:dsearch;/var/mail/virtual
daemon_smtp_ports = smtp : 587 : 465
MAIN_TLS_ENABLE = yes

(Queste righe appariranno in diverse parti del file, sostituirle di conseguenza)

Una volta completato, ricostruire la configurazione di exim con update-exim4.confQuesto conclude le modifiche richieste per Exim

Corriere

Installare Courier con courier-basequesto dovrebbe installare courier-authdaemon, courier-authlib*, courier-imap*, courier-pop*, courieruserinfo,courier-ssl

Onestamente non c'è molta configurazione al di fuori dello standard. Devi solo creare un database utente.

conti

Exim e Courier controllano alcuni punti per vedere se un login o un'e-mail in arrivo sono validi. Exim controlla se il dominio è elencato come nome host locale o se il dominio è in /var/mail/virtualo se il dominio è in /etc/valiases.

Creazione di account e-mail

Alla fine ho creato diversi strumenti per semplificare questo processo, ma l'aggiunta di un nuovo utente va sintonizzata su:

mkdir -p /var/mail/virtual/example.com/email
chown -R mail.mail /var/mail/virtual/example.com/
maildirmake /var/mail/virtual/example.com/email/mail
chown -R mail.mail /var/mail/virtual/example.com/

Quindi aggiungi l'indirizzo al corriere userdb, in modo che possano accedere

userdb email@example.com set uid=8 gid=8 home=/var/mail/virtual/example.com/email mail=/var/mail/virtual/example.com/email/mail

Assicurati di sostituire i valori ove appropriato. Inoltre - uide gid devono essere gli ID numerici utente / gruppo per l'utente di posta.

userdbpw -md5 | userdb email@example.com set systempw

Questo ti chiederà una password, inserisci quella che desideri utilizzare per l'account.

makeuserdb

Infine, genera i file hash / shadow di userdb. Riavvia Courier e verifica se le modifiche funzionano:

authtest email@example.com

Dovrebbe produrre qualcosa di simile a

Authentication succeeded.

     Authenticated: email@example.com  (uid 8, gid 8)
    Home Directory: /var/mail/virtual/example.com/email
           Maildir: /var/mail/virtual/example.com/email/mail
             Quota: (none)
Encrypted Password: $1$LOLCATS$THISWILLBEAHASH.
Cleartext Password: (none)
           Options: (none)

Se vedi "Autenticazione NON RIUSCITA: Operazione non consentita" invece modifica / etc / courier / authdaemonrc e aggiungi authuserdb alla riga dell'elenco dei modelli.

Dopo che tutti i test sono stati confermati, riavvia i vari servizi coinvolti ( courier-authdaemon, exim4), apri le porte 143, 25, 586, 495, 110 e imposta gli account nel tuo client di posta preferito.

Creazione di alias email

Per ogni dominio dovresti creare un file /etc/valiases(crea se non esiste) con almeno la seguente riga:

*: :fail: No user at this address.

Cosa dice questo: se la posta in arrivo non corrisponde a nessun account di posta elettronica che ho registrato, allora la posta dovrebbe essere fallita e rimbalzata con un messaggio: "Nessun utente a questo indirizzo". Quindi tutta la posta inviata per dire: foo@example.comsarebbe rimbalzata come un fallimento.

Tuttavia, abbiamo alcuni indirizzi e-mail che desideriamo mantenere altrove - diciamo esempio@gmail.com - per fare ciò dobbiamo creare /etc/valiases/example.come il contenuto del file dovrebbe essere il seguente:

fwd: example@gmail.com
*: :fail: No user at this address.

In questo modo, anche se fwd@example.com non corrisponde ad alcun account di posta elettronica sul server, corrisponde al /etc/valiasesfile e la posta verrà inoltrata a example@gmail.com - Tuttavia, foo@example.com non riuscirà comunque con un messaggio "Nessun utente a questo indirizzo".


11
Questo viene fornito con un numero ISBN?
Wesley,

1
@WesleyDavid Non credo che la mia storia bash verrà mostrata come un codice ISBN :)
Marco Ceppi

Solo seguendo questi - molto apprezzati - ho modificato sopra per coprire un errore che ho avuto con la riga più autentica.
Darren Greaves,

@DarrenGreaves Grazie! Sono contento che abbia aiutato e grazie per l'aggiornamento!
Marco Ceppi

Sto lottando per far funzionare tutto questo - ho ottenuto il routing valiases solo quando ho aggiunto il file di routing 350 (modificato per percorsi) da debian-administration.org/articles/140 - roba di domini virtuali non funziona affatto - hai dovuto aggiungere qualche file di routing? Ta.
Darren Greaves,

14

Il modo più semplice è correre sudo tasksel install mail-server. Questo ti darà un server di posta elettronica con impostazioni predefinite corrette. Tutto quello che devi fare è rispondere ad alcune domande. Ovviamente, se necessario, è comunque possibile eseguire successivamente le configurazioni manuali, ma nella maggior parte dei casi non lo sarà. Segui semplicemente le indicazioni sullo schermo e dovresti stare bene.

La lettura dell'amministrazione dei servizi di posta elettronica è assolutamente raccomandabile però.

Riferimenti ufficiali:


Esiste un modo pigro per vedere cosa succederà (pacchetti che installerà, impostazioni predefinite)? Con pigro intendo senza installarlo da solo.
Javier Rivera,

@Javier è possibile visualizzare i contenuti installati eseguendosudo tasksel --task-packages mail-server
Marco Ceppi

Configurazione memorizzata in MySQL, nessun anti-spam, nessun anti-virus ... non è davvero utile per noi :(.
Javier Rivera


4

Lo sto facendo da solo, hai davvero bisogno di postfix, e nel mio caso volevo anche un server imap in modo da poter usare un bel client gui (senza menzionare alcun nome) su un altro computer. Ho usato questi documenti:

Postfix

Dovecot (imap e pop3)

In realtà è piuttosto semplice, installato e funzionante in pochi minuti e sto ricevendo e-mail. Ciò è utile anche per verificare che tutto sia impostato correttamente sulla pingabilità .

Oh, e ovviamente dovrai impostare correttamente le voci DNS come di seguito (in base alle impostazioni che hanno funzionato per me):

name   type   content
  @      A     ???.???.??.??    
mail     A     ???.???.??.??

e

         MX Records
Name                 Priority
mail.mydomain.com.      1
mail2.mydomain.com.     2

Nota il punto fermo alla fine dei server di posta e inserisci il tuo indirizzo IP e il nome del dominio dove appropriato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.