Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как задать стиль HTML письма?
 
 автор: sega_z   (26.05.2012 в 21:43)   письмо автору
 
 

Всем привет!

Столкнулся с такой проблемой, может кто то знает как её решить.

Мой сервер отправляет HTML письма своим пользователям. Естественно, чтобы придать письму определенный вид использую CSS стили, но все оформления не работают, когда письмо приходит на Яндекс Почту. На другие почтовые серверы Mail.ru, Rambler.ru и пр. CSS работает нормально.

Обращался с этой проблемой в тех.поддержку Яндекса, но они ответили что не гарантируют работу стилей в своей почте и порекомендовали задавать стили каждого письма в ручную (если честно я не понял, что они имели в виду).

Приведу пример, своего кода отправки письма сервером:


<?php 
$text_mess 
"<html>
<head>
<title></title>
<STYLE>
.text1 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; border: 1px dotted #000099;}
.text2 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px;}
.text3 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; color:#FF0000;}
.border_tabl {border: 2px solid #000099;}
</STYLE>
</head>
<body>
<table align='center' width='800' bgcolor='#E6E6E6' border='0' cellspacing='40' cellpadding='20' class='border_tabl'>
<tr>
<td bgcolor='#FFFFFF' class='text1' align='center'>
<a href='...........'><img src='................' width='179' height='58' alt='...............' border='0'></a><br><br>
<span class='text2'><strong><em>Здравствуйте, уважаемый пользователь!</em></strong></span><br><br>
</td>
</tr>
.................

</table>
</body>
</html>"
;

// Отправляем письмо
if (mail($addr$tema$text_mess"Content-type: text/html; charset=\"windows-1251\" \r\n Reply-To: ..............@mail.ru \r\n""-.............@mail.ru"))
?>


Может существует какой нибудь способ задания CSS стиля HTML, который будет работать в любом случае?
Лично мне не раз приходили автоматические письма на Яндекс Почту с очень красивым оформлением и текста и фона и пр.

  Ответить  
 
 автор: sega_z   (27.05.2012 в 02:33)   письмо автору
 
   для: sega_z   (26.05.2012 в 21:43)
 

Похоже, что этот вопрос так и останется тайной .....

  Ответить  
 
 автор: cheops   (27.05.2012 в 08:15)   письмо автору
 
   для: sega_z   (27.05.2012 в 02:33)
 

Да дело то не хитрое, используйте стили Яндекса по-максимуму, или верстайте под Яндекс, а потом под всех остальных или на Яндекс поправляйте другой вариант письма - тут альтернатив не так много.

  Ответить  
 
 автор: confirm   (27.05.2012 в 09:12)   письмо автору
 
   для: sega_z   (27.05.2012 в 02:33)
 

Да нет ни каких тайн, это давно "рассекречено" в сети:
http://www.webasyst.ru/support/help/html-in-email.html
http://habrahabr.ru/post/60420/
и многое другое, стоит только поискать.
Согласитесь, что пересказывать лично для вас это не имеет смысла.

  Ответить  
 
 автор: sega_z   (27.05.2012 в 19:06)   письмо автору
 
   для: confirm   (27.05.2012 в 09:12)
 

Спасибо, буду пробовать все рекомендации ...

  Ответить  
 
 автор: sega_z   (27.05.2012 в 20:06)   письмо автору
 
   для: sega_z   (27.05.2012 в 19:06)
 

Вроде добился истины, но почему то не работает отступ между ячейками (отступ внутри ячейки отображается как задано 20 пикс.):


<table align='center' width='800' bgcolor='#E6E6E6' border='0' cellspacing='40' cellpadding='20' style='border-style: solid; border-width: 1px; border-color: #000099;'>


И т.к. не виден отступ между ячейками, то не знаю работает или нет цвет фона таблицы.

  Ответить  
 
 автор: confirm   (27.05.2012 в 20:53)   письмо автору
 
   для: sega_z   (27.05.2012 в 20:06)
 

Еще раз внимательно прочтите в сети, что можно сделать и как, а чего никак не получится как вы не пытайтесь. Время конечно не стоит на месте, и кое что меняется и на почтовых сервисах, но не ожидайте, что вы сможете разукрасить свою htnl-почту также, как это было возможно сделать со страницей.

  Ответить  
 
 автор: sega_z   (27.05.2012 в 21:34)   письмо автору
 
   для: confirm   (27.05.2012 в 20:53)
 

Там описано "cellpadding", что типа он не работает, а он у меня наоборот работает.
Не работает "cellspacing", а про него ничего не сказано!
Даже пробовал заменить его на "border-spacing", но все без толку.

Может есть ещё какие нибудь варианты (кроме вставки картинок)?
Не могу понять, почему cellpadding отлично работает, а cellspacing нет?

  Ответить  
 
 автор: confirm   (27.05.2012 в 21:44)   письмо автору
 
   для: sega_z   (27.05.2012 в 21:34)
 

Когда-то давно я писал почту - список товаров с картинками для подписчиков. Прежде чем "разукрасить" страницу, я поинтересовался как выглядит само почтовое отправление на разных почтовых сервисах. После чего просто выкинул все красивости (кстати, почта это в первую очередь содержание, а не картинная галерея, и всякие навороты это лишнее), и сделал аскетично - стили только те, что форматировали таблицу одинаково (почти) во всех почтовых сервисах: рамки, шрифт, цвет, отступы, встроенные изображения.
Собственно и вы можете посмотреть это, тогда может для вас проясниться почему они по разному выдают почту. И тоже используйте только главное, все лишнее выбросить.

  Ответить  
 
 автор: sega_z   (27.05.2012 в 22:04)   письмо автору
 
   для: confirm   (27.05.2012 в 21:44)
 

Дак я и так стараюсь сделать попроще, без лишних наворотов, как раз, как вы указали, использую: рамки, шрифт, цвет, отступы, одно встроенное изображения и всё!

Кстати попробовал несколько вариантов и оказалось, что один работает:


<table align='center' width='800' bgcolor='#E6E6E6' cellpadding='20' cellspacing='40' style='border-style: solid; border-width: 1px; border-color: #000099; border-collapse: separate; border-spacing: 40px;'>


Теперь Яндекс Почта и все остальные, стали показывать отступы между ячеек "cellspacing".

Единственно не понятно будет ли мешать друг другу cellspacing='40' и border-collapse: separate; border-spacing: 40px;

  Ответить  
 
 автор: confirm   (27.05.2012 в 22:14)   письмо автору
 
   для: sega_z   (27.05.2012 в 22:04)
 

Вы когда пишите что-то, то хотя бы читайте:
http://htmlbook.ru/html/table
http://htmlbook.ru/css/border-collapse
http://htmlbook.ru/css/border-spacing
а то лепите все кучу, не думая для чего.

  Ответить  
 
 автор: sega_z   (27.05.2012 в 22:35)   письмо автору
 
   для: confirm   (27.05.2012 в 22:14)
 

Да, действительно, забивая себе голову сложными скриптами забываешь про простые элементарные вещи HTML, которые как раз сейчас пригодились.

Вот так думаю будут отображать все почтовые сервера:

<table align='center' width='800' cellpadding='20' cellspacing='40' style='background-color: #E6E6E6; border-style: solid; border-width: 1px; border-color: #000099; border-collapse: separate;'>


Только не знаю, как лучше задать отступы, с помощью стилей или все таки оставить cellpadding='20' cellspacing='40'?

Чтобы это проверить нужно завести кучу почтовых ящиков... Я проверил только на Яндексе, Майле и Рамблере - отображается так как нужно.

  Ответить  
 
 автор: confirm   (28.05.2012 в 05:47)   письмо автору
 
   для: sega_z   (27.05.2012 в 22:35)
 

В html раздел, показывайте свою таблицу и чего вы от нее хотите, так как не понять чего вы добиваетесь без представления ячеек. А по приведенному можно сказать, что вы не думаете когда читаете, или вообще не читаете о том, что вам необходимо читать.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования