# Telnet

Telnet è un protocollo, sviluppato nel 1969, che fornisce un’interfaccia a linea di comando per la comunicazione con un dispositivo o server remoto.

Poiché è stato sviluppato prima dell’adattamento anche ad  Internet, TELNET non utilizza alcuna forma di cifratura, il che lo rende obsoleto in termini di sicurezza moderna. 
È stato scalzato dal protocollo Secure Shell (SSH), almeno su Internet. Permette di emulare un terminale a distanza, il che significa che permette di eseguire dei comandi 
digitati dalla tastiera di un terminale remoto.

## Installazione

```bash
apt install telnet
```
## Esecuzione di Telnet

Il comando per aprire una sessione Telnet è generalmente il seguente:

```bash
telnet ip_server
telnet hostname_server

telnet 125.64.124.77
```

Infine è anche possibile precisare la porta da utilizzare facendo seguire l'indirizzo IP o il nome del server dal numero di porta:

```bash
telnet 125.64.124.77 80
```

## Comandi Telnet

| Comando | Descrizione                |
|---------|----------------------------|
| ?       | Visualizza l'help          |
| close   | Termina la sessione Telnet |

## Utilizzare Telnet sulla porta 25 per testare la comunicazione SMTP  o per inviare una mail senza client 

Digitare:

```bash
telnet mail.server.com 25
```

dove *mail.server.com* rappresenta l'indirizzo del server SMTP (**Simple Mail Transfer Protocol**), mentre 25 è il numero di porta standard utilizzato dai servizi SMTP. 

```bash
telnet mail.server.com 25
Trying 80.16.129.75...
Connected to mail.server.com.
Escape character is '^]'.
220 mail.server.com ESMTP MDaemon 19.5.8; Sun, 09 Apr 2023 16:25:59 +0200
```

Si dovrebbe ricevere un messaggio di risposta da parte del server simile a *220 mail.server.com*.
La porta di connessione 25 è quella standard utilizzata dalla maggior parte dei server SMTP, ma alcuni amministratori di rete potrebbero aver configurato un numero di porta differente, 
come ad esempio 465 (per utilizzare connessioni sicure) o 587 (per gli utenti che utilizzano Microsoft Outlook).

#### Presentarsi al server

Digitare il comando 

```bash
HELO dominio.com
```

dove *dominio.com* è il nome di dominio da cui si invia il messaggio di posta elettronica. 

Si dovrebbe ricevere un messaggio di risposta da parte del server simile al seguente:

```bash
250 mail.server.com Hello [dominio.com] pleased to meet you
```
#### Mittente


Digitare il comando:

```bash
mail from: tuoindirizzo@server.com
```

Assicurarsi di lasciare uno spazio vuoto dopo il comando `mail from:`.

Se tutto è corretto, si riceverà un messaggio di risposta da parte del server simile al seguente: 

```bash
250 Sender OK
```
#### Destinatario

Digitare il comando 

```bash
rcpt to: nomeutente_dest@dominio_dest.com
```

dove *nomeutente_dest@dominio_dest.com* rappresenta l'indirizzo e-mail completo del destinatario del messaggio.

Si riceverà un messaggio di risposta da parte del server simile al seguente:

```bash
250 OK – MAIL FROM tuoindirizzo@server.com
```

#### Testo del messaggio

Per formattare e inviare correttamente il messaggio di posta, utilizzare i seguenti comandi:

```bash
DATA
```
quindi premere [Invio]. Nella linea di comando successiva digitare il comando 

```bash
subject: Test
```

per inserire l'oggetto, quindi premere due volte il tasto [Invio].

Digitare il testo del messaggio, poi quando è concluso premere il tasto [Invio].

Digitare `.` una sola volta per indicare che è finito il testo del messaggio, quindi premere il tasto [Invio]. 

Si dovrebbe vedere un messaggio che conferma che la e-mail è stata accettata o inserita in coda, in attesa di essere elaborata. 

Digitare `QUIT` per uscire da Telnet.

Un piccolo esempio riepilogativo:

```bash
$ telnet pippo.zigozago.dg smtp [Invio]
            
    Trying 192.168.1.2...
    Connected to pippo.zigozago.dg.
    Escape character is '^]'.
    220 pippo.zigozago.dg ESMTP Sendmail 8.8.5/8.8.5; Thu, 17 Sep 2023 19:58:15 +0200

HELO zigozago.dg [Invio]
            
    250 pippo.zigozago.dg Hello topolino.zigozago.dg [192.168.1.1], pleased to meet you

MAIL From: <daniele@topolino.zigozago.dg> [Invio]
            
    250 <daniele@topolino.zigozago.dg>... Sender ok

RCPT to: <npapera@topolino.zigozago.dg> [Invio]
            
    250 <npapera@topolino.zigozago.dg>... Recipient ok

DATA [Invio]
            
    354 Enter mail, end with "." on a line by itself

Subject: Saluti. [Invio]

Ciao Nonna Papera, [Invio]

come stai? [Invio]

Io sto bene e mi piacerebbe risentirti. [Invio]

Saluti, [Invio]

Daniele [Invio]

. [Invio]
            
    250 TAA02951 Message accepted for delivery

QUIT [Invio]
            
    221 topolino.zigozago.dg closing connection
    Connection closed by foreign host.
```

## Collegamenti

- [https://it.ccm.net/contents/644-utilizzo-di-telnet](https://it.ccm.net/contents/644-utilizzo-di-telnet)
- [https://www.ionos.it/digitalguide/server/tools-o-strumenti/comandi-telnet/](https://www.ionos.it/digitalguide/server/tools-o-strumenti/comandi-telnet/)
- [https://www.aiutocomputerhelp.it/telnet-smtp-inviare-mail-con-telnet/](https://www.aiutocomputerhelp.it/telnet-smtp-inviare-mail-con-telnet/)
- [https://www.wikihow.it/Inviare-una-Email-Usando-Telnet](https://www.wikihow.it/Inviare-una-Email-Usando-Telnet)
