0 лайков 0 дизлайков
в SMTP и техническая отправка от (13 баллов)
отредактировано
Ошибка при отправке по SMTP status=bounced (host smtp.rusender.ru[45.10.41.242] said: 550 5.6.0 Message rejected: plain text content cannot be empty (in reply to end of DATA command)) что исправить? При отправке письма через SMTP получаю ошибку о том, что plain text content не может быть пустым. Что это значит и как исправить?

1 ответ

0 лайков 0 дизлайков
от (100 баллов)
отредактировано

Ошибка 550 5.6.0 Message rejected: plain text content cannot be empty означает, что SMTP-сервер отклонил письмо, потому что в нем отсутствует текстовая (plain text) версия содержимого.

Причина ошибки

Многие SMTP-серверы и почтовые системы требуют, чтобы письмо содержало как минимум текстовую версию. Если вы отправляете только HTML-версию без plain text, сервер может отклонить письмо с этой ошибкой.

Как исправить

1. Добавьте текстовую версию письма

При отправке через SMTP всегда включайте оба формата:

  • HTML-версия: для красивого отображения
  • Plain text версия: для почтовых клиентов, которые не поддерживают HTML

2. Правильная структура письма

Используйте multipart/alternative MIME-тип:

Content-Type: multipart/alternative; boundary="boundary123"

--boundary123
Content-Type: text/plain; charset=UTF-8

Это текстовая версия письма.

--boundary123
Content-Type: text/html; charset=UTF-8

<html>
<body>
<p>Это HTML-версия письма.</p>
</body>
</html>

--boundary123--

3. Если используете библиотеки для отправки

PHP (PHPMailer):

$mail->isHTML(true);
$mail->Body = '<h1>HTML версия</h1>';
$mail->AltBody = 'Текстовая версия письма'; // Обязательно!

Python:

from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

msg = MIMEMultipart('alternative')
msg['Subject'] = 'Тема письма'

text = 'Текстовая версия'
html = '<html><body>HTML версия</body></html>'

msg.attach(MIMEText(text, 'plain'))
msg.attach(MIMEText(html, 'html'))

Node.js (Nodemailer):

const mailOptions = {
  html: '<h1>HTML версия</h1>',
  text: 'Текстовая версия письма' // Обязательно!
};

4. Если отправляете через ESP

Большинство ESP (RuSender, UniSender и др.) автоматически создают текстовую версию из HTML. Но если отправляете через собственный SMTP:

  • Убедитесь, что в настройках включена генерация plain text
  • Или добавьте текстовую версию вручную

Почему это важно

  • Требования SMTP-серверов: многие серверы требуют plain text версию
  • Совместимость: некоторые почтовые клиенты не поддерживают HTML
  • Доставляемость: письма с обеими версиями лучше проходят фильтры
  • Доступность: текстовые версии читаются программами чтения с экрана

Проверка перед отправкой

  • Убедитесь, что в письме есть и HTML, и plain text версии
  • Проверьте, что plain text версия не пустая
  • Протестируйте отправку на тестовый адрес
  • Используйте валидаторы email (Mail-Tester) для проверки структуры

Частые ошибки

  • Только HTML: отправка только HTML-версии без текстовой
  • Пустая текстовая версия: поле text есть, но оно пустое
  • Неправильный MIME-тип: использование text/html вместо multipart/alternative
  • Отсутствие boundary: неправильная структура multipart сообщения

Вывод: Ошибка возникает, когда письмо содержит только HTML-версию без текстовой. Добавьте plain text версию письма при отправке через SMTP. Используйте multipart/alternative MIME-тип и убедитесь, что обе версии (HTML и text) присутствуют и не пустые.

Email Marketing QA — это база знаний вопросов и ответов по email-маркетингу и рассылкам. Задавайте свои вопросы о создании рассылок, настройке ESP, API, SMTP, триггерных цепочках и доставляемости писем. Специалисты и участники сообщества помогут вам запустить рассылку, избежать попадания в спам и решить любые проблемы с email-маркетингом.
...