SMTP: действительно ли это возможно к CC кто-то, не отправляя оригинал?

Я на самом деле начал думать об этом, потому что я забыл к CC кого-то на электронном письме, которое я, как предполагалось, послал, и я хотел, чтобы он получил копию без двойной отправки всем остальным. Я закончил тем просто, что передал его ему, но мне все еще любопытно.

Где CC и списки BCC обработаны в SMTP? Необходимо ли было бы управлять сервером SMTP, или это может быть сделанная сторона клиента?

Спасибо!

24
задан 24.06.2010, 20:22

4 ответа

Короче говоря - да возможно, если можно подключить непосредственно к получателям сервер SMTP. По причинам Rup обрисовывает в общих чертах в его ответе, это не может быть особенно практично, и если Вы находитесь в сети позади брандмауэра, Вы не можете получать соединение с удаленным сервером на порте TCP 25 вообще.

Принятие этого не запрашивает Вас, затем вот деталь:

Когда Вы (как почтовый клиент) соединяетесь с почтовым сервером получателя, весь этот сервер, заботы о (в целях доставки) являются получателями, указанными в RCPT TO:. См. RFC2821 - Простой протокол передачи почты. Это не дифференцируется между типом получателя (к: cc: или скрытая копия:), это просто знает, что Вы говорите, "удостоверяются, что получатель на Вашем сервере получает это".

Однако насколько фактический почтовый клиент получателя заинтересован, это - заголовки в сообщении, в которых говорится, кем были все получатели сообщения. См. RFC2822 - интернет-Формат сообщения.

Другими словами, К: CC: и BCC: заголовки там в пользу почтового клиента, тогда как фактическое распределение обрабатывается во время SMTP 'разговор' с почтовыми серверами.

Таким образом, можно, на самом деле, разговаривать с сервером SMTP, который выглядит примерно так:

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.

Результирующий эффект - это user_i_missed_out@mydomain.co.uk получает копию электронной почты, которая имеет его в списке cc, а также исходном адресате recipient_on_original@somewhere.com, и исходный cc получатель another_recipient_on_original@somewhere.com.

Однако, так как мы никогда на самом деле соединились с почтовыми серверами последнего two, они на самом деле не получают во второй раз электронного письма вокруг. И так как мы не можем изменить письма, которые были уже отосланы им прежде, они никогда не будут замечать, что мы добавили другого cc получателя.

17
ответ дан 07.12.2019, 09:45

То, что происходит,

  1. Вы посылаете электронное письмо своему локальному (или ISP) сервер SMTP
  2. Ваш локальный сервер SMTP разворачивает список получателя и разрабатывает список серверов, с которыми он должен будет говорить для всех получателей. Это удаляет заголовок BCC из сообщения.
  3. Для каждого сервера это соединяется и говорит, "Вот электронное письмо для получателей X, Y: вот заголовки сообщения и тело"

т.е. если можно ввести электронную почту в 3, поставить непосредственно к домашнему серверу SMTP пользователя пропущенного CC, затем можно поставить им CC, не имея необходимость отправлять почту всем остальным. В особенности получатель BCC получит заголовки сообщения и тело, которые не упоминают их вообще (кроме, возможно, заголовка 'X-Envelope-To').

На практике, тем не менее, намного легче отправить всем. Чтобы сделать это эффективно, необходимо было бы изменить почтовый клиент и локальный сервер SMTP для поддержки поддельного списка получателя или don't-really-send-to списка исключения, который он обрабатывает во время расширения получателя.

4
ответ дан 07.12.2019, 09:45

Эта проблема на самом деле решена существующим происходящим работой IETF: Косметическая Копия. К сожалению, я не знаю ни о каком почтовом клиенте, который на самом деле реализует CCCs, поскольку проект широко считается бессмысленной шуткой для Дня дураков.

Во всей серьезности, что Вы спрашиваете, возможно, главным образом потому что содержание электронного письма на самом деле не влияет, в кого отправляется почта на уровне SMTP. Почтовые клиенты записаны, чтобы отправить почту всем в К, CC и поля BCC, но они не обязаны делать это по любому стандарту.

Обновленный: Чтобы быть точным, при отправке почты в сервер SMTP, отправитель использует команду RCPT для определения, к каким адресам электронной почты сообщение должно быть передано. Это затем отправляет содержание почты с командой DATA. Сервер SMTP не должен смотреть на содержание. Должно быть возможно добавить одного получателя к строке заголовка CC сообщения и попросить, чтобы сервер SMPT поставил его только что один адрес.

2
ответ дан 07.12.2019, 09:45

Это может быть позволено/запрещено на основе клиента клиентом, но можно попытаться поместить что-то фальшивка (как";; нераскрытые получатели;";) в К и помещение всех в BCC. Затем повторение процесса заставит его быть похожим на ту же электронную почту, пока ничье наблюдение достаточно тесно к меткам времени и цепочечным сообщениям и такому.

-1
ответ дан 07.12.2019, 09:45

Теги

Похожие вопросы