2009-08-25 12 views
19

Un'applicazione di binari in produzione dovrebbe utilizzare smtp o sendmail per inviare messaggi di posta elettronica?Sendmail vs SMTP

+1

smtp è un protocollo, non un programma. – OTZ

risposta

6

La tua domanda è errata - SMTP sta per Simple Mail Transfer Protocol mentre sendmail è il pezzo software per inviare la posta usando questo protocollo.

Utilizzare sendmail.

36

SMTP è il protocollo utilizzato da quasi tutti gli host Internet per inviare posta. Questo protocollo è parlato da sendmail. Sendmail determina dove inviare il tuo messaggio e come.

Alcuni programmi di posta (la maggior parte, oggi) si collegano direttamente a un server di posta e parlano SMTP. Tuttavia, il metodo "tradizionale" - e discutibile il metodo migliore - è lasciare che sendmail lo faccia. Ci sono due ragioni per questo: 1) quasi ogni programma in UNIX che fa ciò che sendmail fa è progettato per essere una sostituzione drop-in (questo include Postfix e Exim per esempio); e 2) sendmail o la sua sostituzione è stata progettata per gestire la posta e nient'altro - utilizzando sendmail non è necessario progettare un client SMTP.

Il client di posta elettronica Mutt per UNIX è un client di posta elettronica che ancora si rifiuta di parlare SMTP direttamente a un server di posta; una buona descrizione (tecnica) è sul wiki.

Se si ha una scelta (sempre su UNIX) di parlare direttamente con SMTP o utilizzando sendmail, utilizzare sendmail, in particolare sui server.

+0

però non c'è sendmail in windows però ... hmm ... – rogerdpack

5

Entrambi funzioneranno bene. Action Mailer supporta entrambi.

Ho utilizzato SMTP su diversi progetti con successo. La mia sensazione era che fosse un po 'più "standard", ma potrei sbagliarmi.

Non ho usato sendmail. La mia preoccupazione sarebbe che potrebbe essere più difficile da configurare in un ambiente di sviluppo se non si sta sviluppando direttamente su Unix/Linux. Dove puoi parlare direttamente con qualsiasi server SMTP, anche remoto, dovresti installare sendmail sul computer per farlo funzionare.

Il problema principale che ho riscontrato con la posta elettronica è l'invio di messaggi in modo asincrono. Senza un server SMTP locale, un'istanza di sendmail locale sarà più performante.

In entrambi i casi, sembra piuttosto facile passare se si decide di aver sbagliato.

7

Come già menzionato da NDP, entrambi funzionano bene, ovvero se il volume dei messaggi non supera una certa quantità.

Ad esempio, se l'applicazione può comunicare tramite SMTP con il server SMTP locale (su IP 127.0.0.1, Porta 25) o con un server nella stessa sottorete (ovvero su un collegamento a bassa latenza) e tale server non utilizza alcun filtro di contenuto prima di accodare un messaggio, di solito è possibile inviare molte più mail su SMTP in un tempo più breve.

Un link utile per Postfix può essere General Mail Delivery Performance Tips - notare la citazione dicendo

inviare la posta tramite SMTP invece di/usr/sbin/sendmail.

Tuttavia, con l'hardware moderno, se non si prevede di inviare più di 10 messaggi al secondo, non si noterà alcuna differenza reale.