Newsgroup: it.comp.reti.ip-admin
Titolo: Smtp e Mta

Ciao a tutti,
In questo momento sto studiando in il protocollo smtp, online ci sono
un sacco di guide ben documentate e non è difficile da capire.
Quello che non riesco a capire è il protocollo che viene utilizzato
per lo scambio di messaggi fra Server e Server, il "Mail transfer
agent" o "MTA".
Qualcuno ha qualche document o link che spieghi il protocollo
utilizzato tra MTA ?
 
Grazie


SMTP
RFC 821,2821,5321 (più qualcun'altra che di certo mi sfugge).
 
-- 
Paranoia is a disease unto itself. And may I add: the person standing
next to you may not be who they appear to be, so take precaution.
-----------------------------------------------------------------------------
http://bofhskull.wordpress.com/
 

 RFC 821,2821,5321 (più qualcun'altra che di certo mi sfugge).
 
Esatto; va considerato che MTA e MUA sono due acronimi che
vengono semplicemente usati per indicare la parte mittente e
quella destinataria di una data transazione SMTP
 
 


No.
 
Un MTA non è mai un MUA.
Anche quando sta dalla parte "mittente" della transazione SMTP, rimane 
un MTA.


Mi sembra di aver capito che in teoria i comandi sono gli stessi ("An
MTA acts as an SMTP server to accept messages from an MSA or another
MTA, and either delivers them or acts as an SMTP client to relay them
to another MTA."), correggimi se sbaglio.
 
Allora non ho capito un altra cosa:
 
Nel caso invio una mail utilizzando Gmail a un indirizzo Yahoo, Gmail
contattera Yahoo per trasferirgli la mia mail. Il problema che yahoo
accetta email in entrata solo da utenti registrati (User e Passw).
Quindi come fa Gmail a mandare la mia mail al server di yahoo ?


 Quindi come fa Gmail a mandare la mia mail al server di yahoo ?
 
E' un po' complessa. Partiamo dall'inizio.
 
Il protocollo è sempre SMTP (o al max ESMTP, ovvero SMTP Extended).
 
In funzione del suo ruolo, un sistema che "parla SMTP" viene indicato 
con una sigla diversa.
 
Il tuo client (diciamo Thunderburd) è definito MUA (Mail User Agent) e 
usa SMTP per inviare mail attraverso il server SMTP di Gmail adibito a 
questo scopo, che ha il ruolo di MSA (Mail Submission Agent). Poichè 
questo server Gmail non può certo autorizzare chiunque a spedire a 
chiunque senza alcuna autenticazione, richiede username e password, in 
modo che possano farlo solo i suoi utenti, e lo fa attraverso l'uso di 
una delle estensioni SMTP di cui sopra. Se non hai credenziali valide, 
non vai da niuna parte.
 
 
Una volta che ti sei autenticato e gli hai consegnato la mail per Yahoo, 
questo MSA provvederà ad inoltrarla (sempre attraverso protocollo SMTP) 
ad un altro server, che ha il ruolo di MTA, che funge sostanzialmente da 
"hub" per le comunicazioni tra gli MSA e il resto del mondo. Poichè 
questi sistemi sono tutti di Gmail, non fanno uso di alcuna 
autenticazione tra di loro, in quanto l'MTA "trusta" i suoi MSA, sulla 
base dei loro indirizzi IP.
 
A questo punto, l'MTA di Gmail deve recapitare ai sistemi di Yahoo. 
Esegue un lookup DNS per individuare (attraverso i record MX) che 
sistema deve contattare e, sempre attraverso il protocollo SMTP, gli 
consegna la mail.
 
L'MTA dal lato di Yahoo riceve quindi la mail. Poichè vede che il 
destinatario della stessa è uno dei suoi utenti (ovvero sta sul dominio 
yahoo.com
), verifica che tale utente esista davvero e poi la riceve 
allegramente (se non la filtra come spam, si intende).
A questo punto, consegna ulteriormente la mail al sistema che 
"fisicamente" contiene la mailbox dell'utente, che funge da LDA (Local 
Delivery Agent), il cui compito è mettere la mail nella mailbox dell'utente.
 
A questo punto tutte le sessioni SMTP sono terminate, e l'utente andrà a 
prendersi la mail attraverso qualche altra via (POP, IMAP, webmail, 
whatever).
 
 
Nota che il caso che ho esposto sopra è quello completo, tipico di 
installazioni di una certa dimensione.
 
In una piccola azienda o in un sistema casalingo, i ruoli di MTA,MSA e 
LDA sono tutti svolti da un unico sistema, ma puoi comunque distinguerli 
tra loro sul piano logico in funzione di "con chi stanno parlando" di 
volta in volta...
 
 
/me verbose off


 rimane un MTA.
 
Si, ma siccome nelle RFC si parla di MTA e di MUA, la mia nota
era intesa a chiarire (o cercare di farlo) all'OP il fatto che sebbene
si usino tali termini, la transazione utilizza sempre il protocollo
SMTP
 
 

 ora, dove avrei scritto che un MTA è un MUA, scusa la pignoleria ?
 
Poichè ruolo di un MTA è ricevere e *inviare* attraverso SMTP, dalla tua 
definizione se ne desumerebbe che un MTA è anche un MUA, cosa che non è.


 MUA, cosa che non è.
 
Uh... sarò forse stato poco chiaro, ma, ripeto, non mi sembra di
aver scritto o di aver lasciato intendere qualcosa del genere, se
poi ciò non fosse, me ne scuso, ci mancherebbe ma, ripeto, non
ho mai scritto che un MTA ed un MUA sono la stessa cosa
 
 

Delivery Agent), il cui compito è mettere la mail nella mailbox dell'utente.
 
 
Restando nell' esempio : Siccome Yahoo richiede l'autetificazione per
avviare una comunicazione tramite SMTP (dopo il comando HELO richiede
di autenticarsi) non capisco come fa Gmail a autenticarsi e inoltrare
il messaggio al server di Yahoo...

Ho capito il problema.
 
Ip di prova punta a un MUA, puntando al MTA tutto funziona. Ora
capisco perchè è tanto difficile fermare lo spam soprattutto da
botnet.
Restando in tema ti faccio un altra domanda:
 
Ma che senso ha allora richiedere l'autentificazione su protocollo
SMTP se poi posso prendere i panni di un MTA e inviare email con i
capmpi a mio piacimento ?

 il messaggio al server di Yahoo...
 
Autentificazione non si può proprio leggere eh :D Autenticazione
 
Comunque per farla semplice il server di Yahoo non chiederà a quello di 
Gmail di autenticarsi proprio perchè il destinatario e uno dei suoi 
"relay domains".

 E' un po' complessa. Partiamo dall'inizio.
 
Standing ovation per il dettaglio con cui l'hai spiegata :)
 
Enrico


...un altro post da salvare :-D


Quantomeno esagerato...


 capmpi a mio piacimento ?
 
Non č poi cosě facile. L'MTA deve soddisfare alcuni requisiti (a livello
IP e DNS per esempio) per essere accettato come tale.
 
-- 
In God we trust. All others must bring data
W. E. Deming

 capmpi a mio piacimento ?
 
benvenuto nel mondo degli spammer!
 
nel secondo caso finisci tu in blacklist, nel primo caso invece ci 
finisce il tuo provider con il suo mailserver lecito. :)
 
 
in ogni caso essere MTA comporta come minimo:
- che tu abbia un ip pubblico
- che tu non appartenga ad alcuna blacklist
- che tu abbia un record PTR valido
etc etc etc...
 
altrimenti le tue email non le accetta nessuno.
 
 

 autenticarsi e inoltrare il messaggio al server di Yahoo...
 
L'autenticazione viene richiesta nel caso in cui sia necessario
fare "relaying" ossia inviare un messaggio verso un dominio
non gestito dal "server" in uso; non viene invece richiesta nel
caso in cui la mail venga inviata ad un dominio "locale" (al
server che riceve la mail)
 
Ok, ho semplificato di brutto, ma spero sia chiaro
 
 

 un MTA.
 
Aggiungo e correggo specificando che il protocollo che parla il MUA verso il 
MSA *NON* è SMTP ma è una sua variante (molto simile) chiamata Mail 
Submission Protocol (submission) - RFC4409.
 
...e infatti bisognerebbe usare la porta 587 tra il MUA e il MSA invece 
della 25.
 
Ciao,
 
-- 
  Daniele "Vihai" Orlandi
  Bieco Illuminista #184213

 della 25.
 
E' da temperamento di cazzi, ma RFC4409 non definisce un nuovo 
protocollo: si limita a descrivere come va implementato lo stesso 
vecchio protocollo (ESMTP) per il *servizio* MSA.
 
 
Tanto che:
 
«3.1.  Submission Identification
 
    Port 587 is reserved for email message submission as specified in
    this document.  Messages received on this port are defined to be
    submissions.  The protocol used is ESMTP [SMTP-MTA, ESMTP], with
    additional restrictions or allowances as specified here.»
 
;-)


 vecchio protocollo (ESMTP) per il *servizio* MSA.
 
Agreed :)


 il messaggio al server di Yahoo...
 
Semplicemente non invia alla stessa macchina a cui invii tu :-)
 
-- 
ValeRyo
XT600 "Katoki Pajama" - 
http://www.slimmit.com/go.asp?7Y9
 
GamerTag: 
http://card.mygamercard.net/IT/nxe/ValeRyo76.png
 
 
 
 

 inoltrare la mail tramite protocollo SMTP?
 
NON si autentica. Semplicemente Yahoo accetta tutte[1] le connessioni 
SMTP che vogliono mandare mail a un *SUO* dominio (ovvero @
yahoo.com
, 
@
yahoo.it
 ecc ecc).
 
[1] ci sono livelli di controllo per cui il server ricevente può buttare 
giù la connessione anche prima che l'altro lato gli dica a chi vuole 
mandare la mail, ma è un'altra storia.