SMTP: è possibile CC qualcuno senza inviare l'originale?


24

In realtà ho iniziato a pensarci perché mi ero dimenticato di inviare a qualcuno un messaggio di posta elettronica che avrei dovuto inviare e volevo che ne ricevesse una copia senza inviarlo due volte a tutti gli altri. Ho finito per inoltrarlo a lui, ma sono ancora curioso.

Dove sono gestiti gli elenchi CC e BCC in SMTP? Avresti bisogno di controllare il server SMTP, o può essere fatto lato client?

Grazie!

email  smtp 

5
perché viene sottoposto a downgrade? Dopo tutto è una domanda interessante ...

5
@Achilles - I dettagli sulla possibilità o meno di farlo è ASSOLUTAMENTE una domanda di programmazione IMHO. È definito nelle RFC 2821 e 2822. Alla fine della giornata, tutti i client di posta là fuori sono programmati secondo queste definizioni, e ogni sviluppatore qui potrebbe essere costretto ad approfondire SMTP ad un certo punto. Certamente.

3
PER FAVORE, smetti di votare per chiudere questo come "appartiene a SuperUser". Solo perché l'OP afferma che è stata l'azione di invio di un'e-mail a fargli pensare al problema, non pone la vera domanda "non legata alla programmazione". Se avessi una domanda di implementazione http che mi veniva in mente quando facevo clic su un collegamento Web, sarebbe "non relativo alla programmazione"? No.

Risposte:


17

In breve: sì, è possibile se è possibile connettersi direttamente al server SMTP dei destinatari. Per i motivi che Rup delinea nella sua risposta , potrebbe non essere particolarmente pratico e, se ci si trova su una rete dietro un firewall, potrebbe non essere possibile ottenere una connessione a un server remoto sulla porta TCP 25.

Supponendo che questo non valga per te, ecco i dettagli:

Quando tu (come client di posta) ti connetti al server di posta del destinatario, tutto ciò che quel server si prende cura (ai fini della consegna) sono i destinatari specificati in RCPT TO:. Vedi RFC2821 - Simple Mail Transfer Protocol . Non fa distinzione tra il tipo di destinatario (a :, cc: o bcc :), sa solo che stai dicendo "assicurati che il destinatario sul tuo server lo riceva".

Tuttavia, per quanto riguarda l'effettivo client di posta del destinatario, sono le intestazioni nel messaggio che indicano chi erano tutti i destinatari del messaggio. Vedere RFC2822 - Formato messaggio Internet .

In altre parole, le intestazioni TO :, CC: e BCC: sono lì a vantaggio del client di posta, mentre la distribuzione effettiva viene gestita durante la "conversazione" SMTP con i server di posta.

Quindi, in effetti, puoi avere una conversazione con un server SMTP che assomiglia a questo:

C:>telnet aspmx.l.google.com 25
220 mx.google.com ESMTP f70si17620845wej.110
HELO myserver.mydomain.co.uk
250 mx.google.com at your service
MAIL FROM: <test@mydomain.co.uk>
250 2.1.0 OK f70si17620845wej.110
RCPT TO: <user_i_missed_out@mydomain.co.uk>
250 2.1.5 OK f70si17620845wej.110
DATA
354  Go ahead f70si17620845wej.110
To: recipient_on_original@somewhere.com
cc: another_recipient_on_original@somewhere.com, user_i_missed_out@mydomain.co.uk
Subject: My email

Hi - this is a test
.
250 2.0.0 OK 1277401976 f70si17620845wej.110
QUIT
221 2.0.0 closing connection f70si17620845wej.110


Connection to host lost.

L'effetto netto è che user_i_missed_out@mydomain.co.ukriceve una copia dell'e-mail che lo ha nell'elenco CC, il destinatario originale recipient_on_original@somewhere.come il destinatario cc originale another_recipient_on_original@somewhere.com.

Tuttavia, poiché non ci siamo mai effettivamente connessi ai server di posta degli ultimi due, in realtà non ricevono l'e-mail una seconda volta. E poiché non possiamo modificare le mail che sono già state spedite prima di loro, non noteranno mai che abbiamo aggiunto un altro destinatario cc.


4

Quello che succede è

  1. Si invia l'e-mail al server SMTP locale (o ISP)
  2. Il tuo server SMTP locale espande l'elenco dei destinatari ed elabora l'elenco dei server con cui dovrà parlare per tutti i destinatari. Rimuove l'intestazione BCC dal messaggio.
  3. Per ogni server, si connette e dice "Ecco un'e-mail per i destinatari X, Y: ecco le intestazioni e il corpo del messaggio"

vale a dire se è possibile iniettare l'e-mail in 3, recapitare direttamente al server SMTP di casa dell'utente CC mancato, quindi è possibile consegnare loro il CC senza dover inviare la posta a tutti gli altri. In particolare, un destinatario BCC riceverà intestazioni e corpo del messaggio che non li menzionano affatto (tranne forse un'intestazione "X-Envelope-To").

In termini pratici, tuttavia, è molto più facile da inviare a tutti. Per fare ciò in modo efficiente, è necessario modificare il client di posta elettronica e il server SMTP locale per supportare un elenco di destinatari falso o un elenco di esclusione non proprio invio, che elabora durante l'espansione del destinatario.


2

Questo problema è in realtà risolto da un work-in-work IETF esistente: Cosmetic Carbon Copy . Sfortunatamente, non conosco alcun client di posta elettronica che implementa effettivamente i CCC, poiché la bozza è ampiamente considerata una battuta inutile per il primo di aprile.

In tutta serietà, ciò che stai chiedendo è possibile, soprattutto perché il contenuto di un'e-mail non influisce in realtà a chi viene inviata la posta a livello SMTP. I client di posta elettronica sono scritti per inviare posta a tutti nei campi A, CC e CCN, ma non sono tenuti a farlo secondo nessuno standard.

Aggiornato: per essere precisi, quando si invia posta a un server SMTP, il mittente utilizza il comando RCPT per specificare a quali indirizzi di posta elettronica deve essere recapitato un messaggio. Invia quindi il contenuto della posta con un comando DATA. Il server SMTP non dovrebbe guardare il contenuto. Dovrebbe essere possibile aggiungere un destinatario alla riga di intestazione CC di un messaggio e chiedere al server SMPT di consegnarlo a un solo indirizzo.


0

Se lo capisco correttamente, quello che stai cercando di fare è inviare un messaggio una seconda volta, inclusi i destinatari originali nelle intestazioni A: e CC:, ma ricevono solo quel messaggio da alcuni destinatari aggiuntivi. Come hanno notato altre risposte, ciò può essere realizzato dal client di posta elettronica che comunica con il server SMTP e specifica un solo destinatario, ma include le intestazioni A: e Cc: dell'email originale.

Il client Apple Mail ha funzionalità che possono farlo efficacemente. La funzione di reindirizzamento è disponibile nel menu Messaggio o nel menu contestuale per un messaggio. Questa funzione è progettata per essere utilizzata come modo per inoltrare in modo trasparente un'e-mail a qualcun altro senza aggiungere Fwd: all'oggetto e aumentare il livello di preventivo, ma può essere utilizzata anche per i messaggi inviati in precedenza. Mantiene gli stessi campi A / Cc / Da del messaggio originale e aggiunge i nuovi destinatari nelle intestazioni Resent-To e Resent-CC. Gli unici destinatari del messaggio reinviato saranno quelli specificati durante la composizione. Non è del tutto ovvio come funziona quando si utilizza la funzione, quindi assicurarsi di provarlo prima.


-1

Può essere consentito / non consentito su base cliente per cliente, ma puoi provare a mettere qualcosa di falso (come ";; destinatari non divulgati ;;") nel To e mettere tutti nel BCC. Quindi ripetere il processo farà sembrare la stessa e-mail, a patto che nessuno stia osservando abbastanza attentamente i timestamp, i messaggi thread e così via.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.