È una domanda comune che riceviamo qui a Mailgun sui numeri di porta SMTP. Per garantire la connettività al nostro endpoint SMTP (Simple Mail Transfer Protocol), Mailgun offre diverse opzioni di porta SMTP, ma quale si dovrebbe usare per inviare messaggi e-mail? Daremo uno sguardo storico ad ogni porta SMTP e poi discuteremo la metodologia di oggi per l’utilizzo della posta in uscita. Se non sei un appassionato di storia, vai a “Quale porta SMTP dovresti usare?” per le porte SMTP più comuni.
Che cos’è una porta SMTP?
Prima del nostro viaggio nella storia, chiariremo alcune definizioni di base.
SMTP sta per Simple Mail Transfer Protocol-più semplicemente, è il processo con cui le e-mail vengono inviate attraverso Internet. Le porte dei computer sono il modo in cui i singoli computer si collegano a una rete e completano i processi elettronici. Una porta SMTP è una combinazione di entrambe: una porta progettata per inviare e-mail attraverso una rete e al suo destinatario.
Ovviamente, proprio come ci sono più porte di computer, ci sono molte porte SMTP che possono essere utilizzate. Diamo uno sguardo al loro sviluppo.
Porte SMTP: Una prospettiva storica
Nel 1982, la University of Southern California ha presentato una proposta alla Internet Engineering Task Force (IETF). La Request For Comments (RFC) 821 fu pubblicata, stabilendo la porta 25 come canale di trasmissione predefinito per la posta elettronica su Internet. 30 anni dopo, usiamo ancora la porta 25 come mezzo principale di trasmissione della posta elettronica tra due server di posta. Alcuni RFC hanno obsoleto l’SMTP RFC iniziale. Tuttavia, la base per le connessioni SMTP rimane la stessa o simile.
Nel dicembre del 1998, R. Gellens e J. Klensin hanno presentato RFC 2476 a sostegno dell’aggiunta di una nuova specifica per le comunicazioni e-mail su internet. L’RFC proponeva una scissione del concetto tradizionale di invio di messaggi e di relay di messaggi. L’RFC ha definito che l’invio del messaggio dovrebbe avvenire sulla porta 587 per assicurare che le nuove politiche e i requisiti di sicurezza non interferiscano con il tradizionale traffico di relay sulla porta 25.
Che dire della porta 465?
Interessante, la porta 465 non è mai stata pubblicata come un canale ufficiale di trasmissione o invio SMTP dall’IETF. Invece, la Internet Assigned Numbers Authority (IANA), che mantiene gran parte dell’infrastruttura Internet di base, ha registrato la porta 465 per SMTPS. Lo scopo era di stabilire una porta per SMTP per operare usando Secure Sockets Layer (SSL). SSL è comunemente usato per crittografare le comunicazioni su internet.
La porta è stata assegnata per circa un anno quando è stata revocata a sostegno della sicurezza delle comunicazioni SMTP utilizzando Transport Layer Security (TLS). Il chiodo nella bara fu un nuovo comando di protocollo “STARTTLS”, introdotto nella RFC 2487. Questo comando permette ai server SMTP di comunicare sulle porte esistenti annunciando se il server di destinazione supporta la crittografia TLS. Se è così, il server di invio può aggiornare la connessione usando il comando SMTP “STARTTLS”.
Mailgun supporta le connessioni TLS, che puoi verificare connettendoti ed emettendo un “ehlo” da un’interfaccia a riga di comando. Il risultante “250 STARTTLS” conferma che l’endpoint accetta le richieste di connessione TLS.
> telnet smtp.mailgun.org 587
2Tentando 50.56.21.178...
3Connesso a smtp.mailgun.org.
4Il carattere di escape è '^]'.
5220 ak47 ESMTP pronto
> ehlo blog.mailgun.com
7250-ak47
8250-AUTH PLAIN LOGIN
9250-SIZE 52428800
10250-8BITMIME
11250-ENHANCEDSTATUSCODES
12250 STARTTLS
Si può testare utilizzando la stessa sequenza di comandi su qualsiasi server SMTP. Prova Gmail o Yahoo, “telnet gmail-smtp-in.l.google.com 25” o “telnet mta7.am0.yahoodns.net 25”.
Quale porta SMTP dovresti usare?
E oggi? Come sono diverse queste porte standard? Qualcuna è stata deprecata nel tempo?
Porta 25:
La porta SMTP 25 continua ad essere usata principalmente per il relaying SMTP. Il relaying SMTP è la trasmissione di email da server di posta elettronica a server di posta elettronica.
Nella maggior parte dei casi, i moderni client email SMTP (Microsoft Outlook, Mail, Thunderbird, ecc.) non dovrebbero usare questa porta. È tradizionalmente bloccata dagli ISP residenziali e dai fornitori di hosting cloud, per limitare la quantità di spam che viene inoltrata da computer o server compromessi. A meno che tu non stia gestendo specificamente un server di posta, non dovresti avere traffico che attraversa questa porta sul tuo computer o server.
Porta 465:
IANA ha riassegnato un nuovo servizio a questa porta, e non dovrebbe più essere usata per le comunicazioni SMTP.
Tuttavia, poiché una volta era riconosciuta da IANA come valida, ci possono essere sistemi legacy che sono solo capaci di usare questo metodo di connessione. Tipicamente, userete questa porta solo se la vostra applicazione lo richiede. Una rapida ricerca su Google, e troverete molti articoli dei fornitori di servizi di posta elettronica (ISP) che suggeriscono la porta 465 come impostazione raccomandata. Tuttavia, non la raccomandiamo, poiché non è conforme alla RFC.
Porta 587:
Questa è la porta predefinita per l’invio della posta. Quando un client di posta elettronica o un server in uscita sta inviando un’email per essere instradata da un server di posta corretto, dovrebbe sempre usare la porta SMTP 587 come porta predefinita.
Questa porta, insieme alla crittografia TLS, assicurerà che l’email sia inviata in modo sicuro e seguendo le linee guida stabilite dall’IETF.
Tutti i clienti Mailgun dovrebbero considerare l’utilizzo della porta 587 come porta SMTP predefinita, a meno che non sia esplicitamente bloccata dalla rete a monte o dal provider di hosting.
Porta 2525:
Questa porta non è approvata dalla IETF né dalla IANA. Invece, Mailgun la fornisce come porta alternativa, che rispecchia la porta 587, nel caso in cui le porte precedenti siano bloccate. Poiché 2525 è un numero di porta alto non tradizionale, è tipicamente consentito sugli ISP di consumo e sui fornitori di Cloud Hosting, come Google Compute Engine. Se hai provato le porte di cui sopra, ma hai problemi di connettività, prova la porta 2525. Questa porta supporta anche la crittografia TLS.
Aspetta, e POP e IMAP?
POP (Post Office Protocol, con l’ultima versione POP3) e IMAP (Internet Message Access Protocol) sono due dei primissimi protocolli sviluppati su Internet consumer che hanno permesso ai client di posta elettronica – come Outlook, Thunderbird e altri – di recuperare la posta da un server di posta.
Le porte tipicamente usate per POP sono le porte TCP 110 e 995, e per IMAP sono le porte TCP 143 e 993, rispettivamente per sessioni insicure e sicure. Ognuno di essi era bravo a fare cose diverse, come riflettere lo stato di un’email al server (se era letta, contrassegnata o segnata come spazzatura), o per conservare una copia del messaggio su una macchina locale per un facile accesso offline. L’ultima versione di POP, POP3, può essere usata con o senza un SMTP.
Questo non influenza quale porta puoi usare con Mailgun. Mailgun non ospita caselle di posta, quindi questi non sono protocolli che supportiamo.
Usare SMTP con Mailgun
SMTP esiste da anni, e molte persone ci chiedono se devono usare SMTP o l’endpoint API di Mailgun. Decidere se utilizzare un’API di posta elettronica o SMTP per inviare le vostre e-mail potrebbe non essere una scelta facile.
Riconosciamo certamente che c’è un certo livello di vendor lock-in associato alla costruzione di un’API. Tuttavia, SMTP è estremamente “chiacchierone” e può portare ad un invio di posta meno performante su Mailgun.
Per esempio, consideriamo la tipica conversazione TLS tra il mio computer e l’endpoint SMTP di Mailgun:
> openssl s_client -starttls smtp -crlf -connect smtp.mailgun.org:587
2250 STARTTLS
> ehlo blog.mailgun.com
4250-ak47
5250-AUTH PLAIN LOGIN
6250-SIZE 52428800
7250-8BITMIME
8250-ENHANCEDSTATUSCODES
> AUTH PLAIN AHBvc3RtYXN0ZXJAc2FtcGxlcy5tYWlsZ3VuLm9yZwAza2g5dW11am9yYTU=
10235 2.0.0 OK
> MAIL FROM:<[email protected]>
12250 Indirizzo mittente accettato
> RCPT TO:<[email protected]>
14250 Indirizzo destinatario accettato
> DATA
16354 Continua
> Questo è un test di SMTP sulla porta 587.
> .
19250 Grande successo
> QUIT
21221 A dopo. Cordiali saluti, Mailgun
Come potete vedere, la comunicazione di cui sopra è abbastanza macchinosa con un sacco di avanti e indietro tra mittente e destinatario. Apriamo una connessione al server SMTP, emettiamo il comando EHLO, ci autentichiamo, impostiamo il MAIL FROM, impostiamo il RCPT TO, il comando DATA, inviamo i dati, periodo di chiusura, e infine riceviamo la conferma che il messaggio è stato accodato.
Confronta questo con un payload HTTPs:
> openssl s_client -connect api.mailgun.net:443
> POST /v2/samples.mailgun.org/messages HTTP/1.1
> Authorization: Basic YXBpOmtleS0zYXg2eG5qcDI5amQ2ZmRzNGdjMzczc2d2anh0ZW9sMA==
> Content-Type: application/x-www-form-urlencoded
> Content-Length: 126
>
> from=test%40samples.mailgun.org&to=recipient%40samples.mailgun.org&subject=Testing&
> text=This+is+a+test+di+HTTP+su+port+443!
9HTTP/1.1 200 OK
Qui, avviamo una connessione, passiamo il payload HTTP POST e riceviamo un 200 OK dall’endpoint API. Non dobbiamo emettere una sequenza di comandi e aspettare una risposta dal server dopo ogni comando.
Cosa bisogna ricordare sulle porte SMTP?
In sintesi, quando si desidera la performance, Mailgun raccomanda di utilizzare il nostro endpoint API. La quantità di “chiacchiere” avanti e indietro è molto inferiore. E con i nostri SDK API, la connessione è abbastanza semplice. Se non sei interessato a connetterti via API, i nostri endpoint SMTP sono pronti per la tua posta. Non dimenticare che la porta 587 è il punto di partenza per quanto riguarda gli SMTP sicuri!
Per saperne di più, controlla la nostra documentazione per maggiori informazioni, o contattaci e potremo rispondere a qualsiasi domanda sulle porte SMTP o sui nostri servizi di posta elettronica.