Email

Cos'è SMTP e in cosa differisce da IMAP?

SMTP è il protocollo che invia e inoltra la posta; IMAP recupera e sincronizza i messaggi da una casella di posta.

Un flusso email prevede una fase di invio e una fase di casella di posta. SMTP gestisce la prima; IMAP gestisce la seconda.

Cosa fa SMTP?

SMTP invia e inoltra la posta. La tua applicazione o il tuo client di posta apre una connessione a un server SMTP, trasmette mittente, destinatari e messaggio e riceve una risposta dopo ogni comando. Un relay può poi agire come client SMTP e passare il messaggio al server successivo.

Il protocollo non decide come viene visualizzata una casella di posta né quali messaggi un utente ha letto. Il suo compito è la trasmissione e il passaggio di responsabilità tra server.

Cosa fa IMAP?

IMAP recupera i messaggi da una casella di posta e ne sincronizza lo stato. Un telefono e un laptop possono mostrare le stesse cartelle, flag e stato di lettura perché entrambi lavorano sulla copia presente sul server.

IMAP non invia un nuovo messaggio per la consegna. Un client può usare SMTP per inviare una risposta, poi usare IMAP per leggere il thread nella casella di posta.

Come si confrontano SMTP e IMAP?

AspettoSMTPIMAP
Funzione principaleInvio e inoltro della postaRecupero e sincronizzazione dei dati della casella di posta
DirezioneIn uscita verso un server di posta o un relayTra un server di casella di posta e un client
Stato del serverUn server può accodare un messaggio fino al passaggio successivo; SMTP non definisce la casella di posta di un utenteIl server conserva la copia della casella di posta, le cartelle e lo stato dei messaggi
Client tipicoApplicazione di invio o client di postaClient di posta che legge una inbox
Porte comuni587 per la submission, 465 per TLS implicito, 25 per il relay server-to-server143 per connessione in chiaro o STARTTLS, 993 per TLS implicito
Uso in un'appInvio di ricevute, avvisi e altri messaggiLettura o elaborazione di una casella di posta esistente

La differenza nello stato del server determina la scelta del protocollo. SMTP può accodare un messaggio durante la consegna, ma non è un archivio di casella di posta. IMAP è costruito attorno a una casella di posta lato server che i client consultano e sincronizzano.

Come può una conversazione SMTP diagnosticare un errore?

Cattura il comando e la risposta che lo segue. SMTP è una conversazione a passi alternati: il client invia EHLO, MAIL FROM, RCPT TO e DATA, e il server risponde a ogni passo. Il comando in errore restringe il problema a configurazione della connessione, accettazione del mittente, accettazione del destinatario o dati del messaggio.

Ad esempio, questo breve scambio arriva fino al corpo del messaggio:

S: 220 mail.example ESMTP ready
C: EHLO app.example
S: 250-mail.example
C: MAIL FROM:<sender@example>
S: 250 2.1.0 OK
C: RCPT TO:<recipient@example>
S: 550 5.1.1 user unknown

Il 550 è arrivato dopo RCPT TO, quindi il server ha rifiutato l'indirizzo del destinatario. Non è prova che la connessione di rete o l'identità del mittente abbiano fallito. Un 4xx allo stesso passo richiederebbe una politica di ripetizione anziché un errore permanente immediato.

RFC 5321 definisce il formato delle risposte e rende il codice numerico la parte leggibile dalla macchina:

An SMTP reply consists of a three digit number (transmitted as three numeric characters) followed by some text unless specified otherwise in this document. The number is for use by automata to determine what state to enter next; the text is for the human user.

Usa la prima cifra come primo criterio diagnostico:

Classe di codiceSignificatoPasso successivo
2xxIl comando è stato completatoProsegui con la transazione
3xxIl server ha accettato il comando e necessita di ulteriore inputInvia la parte successiva, ad esempio il corpo del messaggio dopo DATA
4xxErrore temporaneoMantieni la responsabilità del messaggio e riprova dopo che la condizione del server potrebbe essersi risolta
5xxErrore permanente per quella richiestaCorreggi indirizzo, credenziali o messaggio prima di riprovare

Leggi comando e codice insieme. Un 535 dopo l'autenticazione indica un problema di credenziali o di politica di autenticazione. Un 552 dopo DATA indica un limite di dimensione. Un 421 durante la gestione della connessione indica un limite temporaneo del server o delle connessioni.

Quale protocollo serve alla mia applicazione?

Usa SMTP quando l'applicazione invia posta. Usa IMAP quando legge e sincronizza una casella di posta esistente. Un'applicazione che deve elaborare la posta in ingresso può anche usare un API email in entrata, che consegna i messaggi già analizzati senza richiedere il polling della casella.

Per la posta in uscita, scegli tra un relay SMTP e un HTTP email API. SMTP è adatto a librerie e sistemi che parlano già il protocollo. Un HTTP API è adatto ad ambienti in cui aprire e gestire connessioni SMTP è scomodo.

Come aiuta Bird con l'invio tramite SMTP?

Per inviare tramite Bird, imposta l'host relay per la regione della tua chiave, scegli la porta 465, 587 o 2525 e autenticati con username bird più la tua chiave API. La guida relay SMTP fornisce i limiti di connessione e la gestione dei codici di risposta in caso di handoff fallito.

Posso usare IMAP per inviare email?

No. IMAP recupera e sincronizza i dati della casella di posta. L'invio richiede SMTP o un HTTP email API.

Qual è la differenza tra IMAP e POP3?

Entrambi recuperano la posta, ma IMAP mantiene la casella sul server e sincronizza lo stato tra i client. POP3 tradizionalmente scarica i messaggi su un singolo client, quindi non offre lo stesso stato condiviso della casella di posta.

Quale porta SMTP devo usare?

Usa 587 per la submission autenticata con STARTTLS, oppure 465 per una connessione con crittografia implicita quando il tuo client la richiede. La porta 25 è riservata al relay server-to-server ed è spesso bloccata per l'uso diretto da parte dei client. Quale porta SMTP devo usare? confronta le porte e i rispettivi ruoli.

In breve

  1. SMTP invia e inoltra la posta.

    Trasferisce un messaggio da un client o un'applicazione al server di posta successivo, poi attraverso i relay intermedi fino al destinatario.

  2. IMAP recupera e sincronizza una casella di posta.

    Permette ai client di leggere i messaggi e mantenere cartelle, flag e stato di lettura allineati con il server.

  3. I codici di risposta indicano cosa fare dopo.

    Un codice 2xx indica che il comando è stato completato, un codice 4xx è temporaneo e un codice 5xx richiede una correzione prima di riprovare.

  4. La guida relay SMTP di Bird copre la configurazione dell'invio.

    Usala per host, porte, flusso di autenticazione e dettagli di troubleshooting specifici di SMTP.

Costruisci sulla stessa rete.

Una chiave API di test è subito tua. L'accesso alla produzione si sblocca quando aggiungi un metodo di pagamento e verifichi un mittente.

La tua prossima idea.
Pronta a partire.