Отправка электронных писем BCC с помощью сервера SMTP?

Мне записали это на части моего кода некоторое время:

/**
 * Add a BCC.
 *
 * Note that according to the conventions of the SMTP protocol all
 * addresses, including BCC addresses, are included in every email as it
 * is sent over the Internet. The BCC addresses are stripped off blind
 * copy email only at the destination email server.
 *
 * @param string $email
 * @param string $name
 * @return object Email
 */

Я не помню, где я получил его от (возможный источник), но это не должно относиться к этому вопросу. В основном, каждый раз, когда я пытаюсь послать электронное письмо с BCCs через SMTP, адреса BCC не скрыты - я считал целый RFC для протокола SMTP (пара несколько лет назад), и я не думаю, что пропускаю что-либо.

Странная вещь, если я посылаю электронное письмо с BCCs использование встроенного mail() функционируйте все работает просто право, и я понятия не имею, почему - я хотел бы прокрутить своего собственного почтового отправителя, но мне не удается понять это.

Кто-то может пролить некоторый свет в этот темный предмет?

16
задан Mark Brackett 17 July 2013 в 16:23
поделиться

1 ответ

Адреса BCC не удаляются на целевом сервере электронной почты. Это не так.

Как на самом деле работает SMTP

  • Отправитель отправит на сервер SMTP список команд RCPT TO , по одной для каждого адреса электронной почты получателя, и эта команда не определяет, является ли получатель обычным Приемник типа "Кому", "CC" или "BCC".
  • Достаточно скоро после вызова команды, которая сообщает SMTP-серверу, кто является отправителем, кто является сервером, и все остальное, только тогда отправитель вызовет команду DATA , в которой будет содержаться содержимое электронное письмо, состоящее из заголовков и тела письма, которое получают почтовые клиенты. Среди этих заголовков электронных писем обычные от адреса, до адреса, адреса CC.
  • Адрес BCC не отображается получателю просто потому, что он не распечатывается при выполнении команды DATA , а не потому, что SMTP-сервер назначения удалил их. SMTP-сервер назначения будет просто обращаться к RCPT TO для получения списка адресов электронной почты, которые должны получать содержимое электронной почты. На самом деле не имеет значения, находится ли получатель в списке «Кому», «CC» или «BCC».
    Обновление (для уточнения): адреса электронной почты BCC должны быть указаны в списке команд RCPT TO , но заголовок BCC должен , а не быть напечатан под Команда DATA .

Цитата из RFC, который, на мой взгляд, имеет отношение к вашему случаю:

Обратите внимание, что почтовые данные включают элементы заголовка заметки, такие как Дата, Тема, Кому, Копия, От [2].

Развертывание собственного отправителя электронной почты

Пару лет назад, я откровенно думаю, было довольно давно, чтобы предполагать, что вы все еще запоминаете от начала до конца RFC 821 . :)

37
ответ дан 30 November 2019 в 15:30
поделиться
Другие вопросы по тегам:

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