Назад | Перейти на главную страницу

Функциональность SMTP по умолчанию, если один из нескольких адресов недействителен

Хотя, по сути, это вопрос программирования, мне кажется, что тема больше подходит для этого сайта. Однако, если вы считаете, что он лучше подходит для Stackoverflow, сообщите мне, и я спрошу его там.

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

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

Кто-нибудь может подтвердить, стандартная ли это функциональность?

Или это что-то, что можно настроить на индивидуальном уровне SMTP?

Или отдельный поставщик SMTP должен решать, как он поступает с электронными письмами, в которых один или несколько адресов недействительны?

Возможно ли, что «другие» получатели все равно получат письмо?

Ноты...

Электронное письмо может быть отправлено любому количеству получателей. Если его нельзя доставить на один адрес, все остальные адреса все равно получат сообщение. Отправитель (обычно) получит одно или несколько уведомлений о недоставке с указанием адресов, на которых произошел сбой, и с указанием причины сбоя. (Сторонний провайдер, такой как Sendgrid, может не отправлять сообщения о недоставке по электронной почте, а отображать это на веб-панели управления или вместо этого предоставлять через API.)

RFC 5321 указывает, что вы должны повторять команду RCPT любое количество раз. На практике вы будете подключаться к почтовому серверу для данного домена, а затем попытаетесь доставить на каждый адрес в этом домене, отправив одну команду MAIL, несколько команд RCPT, а затем DATA. Если RCPT выдает ошибку, вы регистрируете ее и продолжаете. Затем после того, как все адреса во всех доменах будут проверены, вы отправляете обратно отправителю отчет о недоставке с указанием неудачных адресов и причин. Обратите внимание, что вам нужно встать в очередь и попытаться снова, чтобы получить ошибку 4xx. Лучше всего, как программисту, не пытаться реализовать SMTP самостоятельно, а просто отправлять почту на существующий SMTP-сервер, настроенный как ретранслятор, который уже может обрабатывать все за вас.