Хотел узнать, есть ли какие-либо функции/классы/и т. д., чтобы помочь с ограничением в 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 Не удалось проанализировать ответ, в основном не нравится формат или способ возврата данных.
<br/>
здесь не при чем. Решение состоит в том, чтобы кодировать base64, но если вы не хотите этого делать, подойдет простой\r\n
. - person Brad   schedule 19.01.2011