CakePHP рендеринг электронной почты проблема

0

Я отправляю htmlmail с помощью CakeEmail в myproject. Я использую структуру таблицы в своем файле макета электронной почты и сохраняю свой сменный текст в базе данных. Функция Mail работает нормально, она добавляет содержимое базы данных в макет электронной почты перед отправкой. Но макет таблицы ломается, когда я получаю почту. Я обнаружил, что функция рендеринга в CakeEmail.php добавляет теги <p> к каждой строке кода, которую я сохранил в базе данных.

(int) 32 => '   <table  align="center" border="0" cellspacing="0" cellpadding="0" >',
(int) 33 => '   <tbody> <tr><td><p> <tr></p>',
(int) 34 => '<p>  <td style="padding:0;margin:0;"></p>',
(int) 35 => '<p>  <h2 style="color:#404040;font-size:24px;font-weight:bold;line-height:22px;padding:0;margin:0;letter-spacing:0.015 em; font-family: arial,sans-serif;">Activate Account</h2></p>',
(int) 36 => '<p>   </td></p>',
(int) 37 => '<p>   </tr></p>',
(int) 38 => '<p> </p>',
(int) 39 => ' <tr><td></tbody>',
(int) 40 => ' </table>',     

Как я могу отправить текст базы данных без элемента <p>.

Запись базы данных выглядит так:

<table style="margin-top: 80px" width="630" align="center" border="0" cellspacing="0" cellpadding="0" >                                 <tbody>                                                              <tr><td style="padding:0;margin:0;">                                                                                <h2 style="color:#404040;font-size:24px;font-weight:bold;line-height:22px;padding:0;margin:0;letter-spacing:0.015 em; font-family: arial,sans-serif;">Activate Account</h2>                                                                            </td></tr></tbody>                                                                </table>               
  • 0
    ИМХО, если некоторые пробельные столбцы будут удалены в вашем примере кода, это улучшит удобочитаемость (для этого вопроса).
  • 0
    Проверьте свои теги <tr> . В строке 33 есть 2 отверстия, а в ряду 39 есть еще одно открытое.
Показать ещё 1 комментарий
Теги:
cakephp
html-email
cakephp-2.3

1 ответ

2
Лучший ответ

Линии обернуты элементами <p> в шаблоне элемента электронной почты HTML по умолчанию, который можно найти в app/View/Emails/html/default.ctp:

$content = explode("\n", $content);

foreach ($content as $line):
    echo '<p> ' . $line . "</p>\n";
endforeach;

https://github.com/cakephp/cakephp/blob/2.3.0/app/View/Emails/html/default.ctp

Измените шаблон в соответствии с вашими потребностями, возможно, вы просто хотите echo $content; ,

Ещё вопросы

Сообщество Overcoder
Наверх
Меню