Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Как добавить HTML в сообщения на мыло?

Как добавить HTML в сообщения на мыло?


     28.03.2015    Все вопросы » Общие вопросы    2416

вопрос
Как добавить HTML в сообщения на мыло?

Ответил: golden_eagle_god


В DLE 10.4 была добавлена такая функция. Но если у вас старый движок, то замените старый mail.class.php на новый от DLE 10.4 (Я, к примеру, менял в DLE 10.3).

Ну а потом, где вызывается dle_mail, добавьте второй параметр TRUE, вот так:
dle_mail($config, TRUE)


Теперь будет отправляться HTML в письмах, я таким образом, на DLE 10.3 все письма на сайте сделал красивыми и оформленными. Удачи.

15 комментариев

vodka356
Юзер

vodka356 - 28 марта 2015 13:30 -

а где вызывается dle_mail?

ПафНутиЙ
Админ

ПафНутиЙ - 28 марта 2015 13:52 -

Там, где происходит обработка отправки сообщения на почту (таких мест несколько)

Каков вопрос - таков и ответ. Просто помните об этом.

vodka356
Юзер

vodka356 - 28 марта 2015 14:11 -

ПафНутиЙ, GOLDEN_EAGLE_GOD,
Хочется изменить вид сообщения на почту, везде, т.е пусть то обратная связт, сообщение для активации аккаунта, и тд и тп

Файл заменил, ни чего не произошло, Пожалуйста напишите в каких файлах добавить к dle_mail($config, ) TRUE
Пробывал добавить в /ajax/feedback.php и /modules/feedback.php

но ни чего не изминилось сообщения приходят в форме:
[b]Сообщение[/b]


как и было раньше

vitnet
PHP-developer

vitnet - 28 марта 2015 15:10 -

vodka356,
Зачем отправлять сообщение с ББ кодами когда нужно в HTML?

vodka356
Юзер

vodka356 - 28 марта 2015 15:55 -

vitnet,
да это я к примеру написал сообщеине, просто любое слово, пожалуйста подскажите!!!!!

vodka356
Юзер

vodka356 - 28 марта 2015 18:36 -

Прошу вас помогите!

golden_eagle_god
Юзер

golden_eagle_god - 29 марта 2015 13:12 -

Попробуйте добавить HTML в шаблоны сообщений и отправить. Только не забывайте, что все стили нужно прописывать инлайново к элементам (style="background:#000 url();color:#fff"), так как почтовые агенты игнорируют отдельные css.

Простой пример:
<div style="background:green;border:5px solid #00FF81;">
    
    <table width="100%" border="0">
        
        <tr>
            
            <td width="110px" style="padding-left:5px;">
                <a href="#" target="_blank" title="Перейти на сайт"><img src="#" border="0" width="110px"/></a>
            </td>
            
            <td style="color:#fff;padding:0 5px" align="right">Мой сайт
            </td>
            
        </tr>
        
    </table>
    
    <div class="text" style="padding: 5px 10px;background:#fff">
        
        <h1 align="center">Тема</h1>
        Текст
        
    </div>
    
    <table width="100%" border="0" style="color:#fff">
        <tr>
            
            <td style="padding:5px;line-height:130%">
                <div>Мой сайт</div>
            </td>
            
            <td width="160px" style="padding:5px;" align="center">
                Вторая колонка
            </td>
            
        </tr>
        
    </table>
</div>

vodka356
Юзер

vodka356 - 29 марта 2015 13:51 -

приходят сообщения вот так:
<div style="background:green;border:5px solid #00FF81;"> <table width="100%" border="0"> <tr> <td width="110px" style="padding-left:5px;"> <a href="#" target="_blank" title="Перейти на сайт"><img src="#" border="0" width="110px"/></a> </td> <td style="color:#fff;padding:0 5px" align="right">Мой сайт </td> </tr> </table> <div class="text" style="padding: 5px 10px;background:#fff"> <h1 align="center">Тема</h1> Текст </div> <table width="100%" border="0" style="color:#fff"> <tr> <td style="padding:5px;line-height:130%"> <div>Мой сайт</div> </td> <td width="160px" 


не преобразуются, как исправить?

изменил/добавил в /ajax/feedback.php и /modules/feedback.php
$mail = new dle_mail( $config, TRUE );

vodka356
Юзер

vodka356 - 29 марта 2015 13:49 -

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

golden_eagle_god
Юзер

golden_eagle_god - 29 марта 2015 17:11 -

Скорее всего в старой версии админпанели из поступающих данных, HTML преобразуется в сущности. Я сделал немножко по-другому, но а вам лучше попробовать проще: заменить старый файл /engine/inc/email.php на новый от DLE 10.4 , у вас появится галочка "Использовать HTML формат для данного письма", тогда HTML не должен будет преобразовываться и будет отправляться как есть.

Еще в базу данных вам нужно будет сделать запрос:
ALTER TABLE вашпрефикс_email ADD use_html TINYINT(1) NOT NULL DEFAULT '0'

И никогда не забывайте сделать резевную копию заменяемых файлов ;)
Удачи.

vodka356
Юзер

vodka356 - 31 марта 2015 08:10 -

golden_eagle_god,
заменил, да получилось, но теперь шаблоны сообщений вообще все прыгают
как исправить в моем файле /engine/inc/email.php ?

vodka356
Юзер

vodka356 - 31 марта 2015 09:44 -

golden_eagle_god,
/engine/inc/email.php

удалил
$find = array ("<", ">");
$replace = array ("<", ">");
И все норм, но проблема теперь такая:
Как можно запретить использование html кода в написании сообщения?
ну в плане чтобы если написать например
<br>
то на мыло пришло
 <br>
в виде надписи бр

golden_eagle_god
Юзер

golden_eagle_god - 31 марта 2015 11:02 -

Советую вам обновить движок целиком. Случай индивидуальный, я на 10.3 такие как у вас эксперименты не проводил :) Для полноценной работы новой функции этой, нужно во многих файлах движка, где отправляются письма, произвести правки.

vodka356
Юзер

vodka356 - 1 апреля 2015 12:47 -

golden_eagle_god, заменил файлы с более новой версии, и меня чуть не выгнали с хостинга) каждые 2 секунды запрос по обратной связи

у меня допустимая нагрузка по тарифу для cpu: 43 для mysql: 500

как то так)

Дата          CPU    MySQL
2015-04-01    2    0
2015-03-31    879    54
2015-03-30    92    78
2015-03-29    186    120
2015-03-28    338    185
2015-03-27    294    50
2015-03-26    295    42
2015-03-25    308    91
2015-03-24    8    2

golden_eagle_god
Юзер

golden_eagle_god - 1 апреля 2015 16:29 -

Насчет нагрузки - уже не ко мне :) Но сайт, на котором был заменен только mail.class.php (приводил в пример), перегрузок не испытывает.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх