На самом деле, это не проблема «почтового сервера». Ограничение SMTP-строки определяет количество символов, допустимое для каждой строки во время передачи. SMTP RFC допускает до 1000 символов в строке, а установленный по умолчанию постфикс с установленным ограничением составляет 998 символов. Вам следует связаться с вашим хостинг-провайдером для увеличения лимита линии SMTP, если вы считаете, что необходимо превышать RFC.
узнать, есть ли какие-либо функции / классы / и т. Д., Чтобы помочь с ограничением в 990 символов для электронной почты, поскольку мой HTML выполняется из-за этого.
Проблема: (Источник)
Обратите внимание, что почтовые серверы имеют ограничение в 990 символов в каждой строке, содержащейся в сообщении электронной почты. Если отправлено сообщение электронной почты, которое содержит строки длиной более 990 символов, эти строки будут подразделены дополнительными символами конца строки, что может привести к повреждению в сообщении электронной почты, особенно для содержимого HTML. Чтобы этого не происходило, добавьте свои собственные символы конца строки в соответствующие места в сообщении электронной почты, чтобы ни одна строка не превышала 990 символов.
У кого-нибудь еще есть эта проблема? и как ты это исправил?
Похоже, мне нужно найти хорошее место, чтобы разбить мой HTML и вручную добавить разрыв строки, тьфу ...
ОБНОВИТЬ:
Это табличные данные со многими строками. Так что мне нужно добавить \ n или<br />
где-то?
ОБНОВЛЕНИЕ № 2: Добавление кода типа MIME
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1\r\n";
$headers .= "Content-Transfer-Encoding: quoted-printable\r\n"; // added this, but still no results
$headers .= "From: [email protected]\r\n";
Вот как я вызываю функцию (и):
Как я изначально звонил:
return $html;
Что я пробовал:
return imap_8bit($html); // not working, nothing is captured in the error log
А ТАКЖЕ
return imap_binary($html); // not working, nothing is captured in the error log
ОБНОВЛЕНИЕ № 3 (Добавление функции почты)
try {
mail(
'[email protected]',
'Subject of Email',
$html,
$headers
);
} catch (Exception $e) {
echo ("ERROR: Email NOT sent, Exception: ".$e->getMessage());
}
Пример HTML (Это сообщение электронной почты в формате HTML) (Это также относится к классу, который является частью службы XMLRPC)
private function getHTML() {
$html = '<html><head><title>Title</title></head><body>';
$html .= '<table>';
$html .= '<tr><td>many many rows like this</td></tr>';
$html .= '<tr><td>many many rows like this</td></tr>';
$html .= '<tr><td>many many rows like this</td></tr>';
$html .= '<tr><td>many many rows like this</td></tr>';
$html .= '<tr><td>many many rows like this</td></tr>';
$html .= '</table>';
$html .= '</body>';
$html .= '</html>';
return $html;
//return imap_8bit($html); // not working, nothing is captured in the error log
//return imap_binary($html); // not working, nothing is captured in the error log
// Both of these return the XMLRPC Fault Exception: 651 Failed to parse response
}
Исключение ошибки: 651 Не удалось разобрать ответ, в основном не нравится формат или способ возврата данных.