Вышло обновление 60: новый HTML-редактор, более удобная фильтрация событий. (Подробнее.)

Отправка копий писем: множественные To, CC и BCC

Иногда бывает нужно, чтобы письмо было отправлено нескольким адресатам сразу, и при этом получатель видел бы в поле "Кому" или "Копия" имена и email-адреса тех, кому было отправлено письмо. Либо, наоборот, необходимо отправить "невидимую" копию письма по ещё одному адресу. Ниже мы рассказываем, как это сделать.

Отправка копий через API

Отправка копий отличается от обычной отправки тем, что параметр email указывает реального получателя, а в заголовках "To:" и "CC:" указаны, возможно, другие адреса. Для этого мы должны в параметре headers указать желаемые заголовки "To:" и "CC:". Unisender Go отправляет эти заголовки "как есть", ничего в них не меняя (только осуществляя при необходимости их MIME-кодирование).

Рассмотрим простой пример, когда нужно отправить письмо Ивану на адрес user@example.com и копию письма - Марии на адрес cc@example.org. В этом случае параметры reсipients и headers метода email/send будут такими:

  "recipients": [
    {"email":"user@example.com"},
    {"email":"сс@example.org"}
  ],
  "headers": {
    "To": "Иван <user@example.com>",
    "CC": "Мария <cc@example.org>"
  }

А вот более сложный пример. Отправляем письмо Степану и Василию, ставим в копию Елену и Светлану, а также отправляем невидимую копию на адрес bcc@example.net:

  "recipients": [
    {"email":"to_user1@example.com"},
    {"email":"to_user2@example.com"},
    {"email":"copy1@example.org"},
    {"email":"copy2@example.org"},
    {"email":"bcc@example.net"}
  ],
  "headers": {
    "To": "Степан <to_user1@example.com>, Василий <to_user2@example.com>",
    "CC": "Елена <copy1@example.org>, Светлана <copy2@example.org>"
  }

Обратите внимание:

  • Имена для "To" и "CC" можно передавать прямо в заголовках и без MIME-кодирования русских букв.
  • Важно понимать, что подстановки (substitutions) в письме для каждого адресата могут быть свои.  Но если вы хотите, чтобы все адресаты получили одинаковый текст письма - либо передавайте одинаковые подстановки, либо воспользуйтесь параметром global_substitutions вместо персональных substitutions.
  • Трекинговые ссылки просмотра и переходов, а также ссылка отписки будут в любом случае индивидуальными для каждого реального получателя (свои ссылки для каждого email в recipients).
  • Тарификация идёт за каждый email, указанный в массиве recipients.

Существует несколько ограничений при отправке копий в Unisender Go:

  • Нельзя указывать заголовок "CC" без заголовка "To" - это приведёт к ошибке отправки. А вот заголовок "To" без "CC" - можно.
  • Максимальное количество адресов в заголовке "To" - десять, аналогичное ограничение действует и для заголовка "CC". "Невидимых" копий тоже может быть максимум десять.
  • Если адрес из параметра email не указан ни в "To", ни в "CC" (т.е. с его помощью реализуется "невидимая копия") - то этот адрес может быть только на вашем собственном подтверждённом в Unisender Go домене. Т.е. нельзя отправлять "невидимые копии" на чужие домены. Увы, мы вынуждены ввести это правило для предотвращения фишинговых рассылок.

Отправка копий через SMTP

По умолчанию при отправке через SMTP Unisender Go действует не по стандарту и отправляет каждому адресату из заголовков "To" и "CC" свою копию письма с единственным email-адресом в итоговом заголовке "To", совпадающим с реальным адресом получателя.

Если вам нужно строгое соответствие SMTP-стандарту, т.е. отправка без изменения MIME-заголовков To: и CC: (например, для отправки видимых и невидимых копий CC и BCC), то вы должны установить параметр strict в значение true в заголовке X-UNISENDER-GO, либо обратиться в техническую поддержку, чтобы вам включили strict=true для всех ваших писем без необходимости передачи дополнительного параметра в заголовке.

В отличие от API-вызова email/send, в случае отправки через SMTP за правильное MIME-кодирование заголовков отвечаете вы. Тарификация в режиме по умолчанию идёт за каждый адрес в заголовке To или CC, в режиме strict - за каждого получателя в RCPT TO.

Правила при отправке в режиме strict аналогичны тем, что действуют и для API, а именно:

  • Нельзя указывать заголовок "CC" без заголовка "To" - это приведёт к ошибке отправки. А вот заголовок "To" без "CC" - можно.
  • Максимальное количество адресов в заголовке "To" - десять, аналогичное ограничение действует и для заголовка "CC". "Невидимых" копий тоже может быть максимум десять.
  • Если email-адрес реального получателя в RCPT TO не указан ни в "To", ни в "CC" (т.е. с его помощью реализуется "невидимая копия") - то этот email может быть только на вашем собственном домене. Т.е. нельзя отправлять "невидимые копии" на чужие домены. Увы, мы вынуждены ввести это правило для предотвращения фишинговых рассылок.