Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.11.30;
Скачать: [xml.tar.bz2];

Вниз

Как вложить в тело письма html код?   Найти похожие ветки 

 
deras   (2008-10-16 00:12) [0]

Возможно и не по адресу вопрос, но может кто-то сталкивался спроблемкой. Есть процедура формирования и отправки письма

procedure TForm1.SendMail;
var  M: TIdMessage;
    s1,s2,s3,s4,s5,s6:string;
begin
 M:=TIdMessage.Create(nil);
 M := TIdMessage.Create(Form1);
 M.From.Text := "qqq@mail.com";
 M.Recipients.Add;
 M.Recipients.Items[0].Text := MailTo;
 M.ContentType := "text/plain; charset=Windows-1251";
 M.Subject := "Тема письма";
 //M.Body.Text := " Просто  текст письма  ";
 s1:="<html><head></head><body><table width="100%"><tr><td width="30%"><img  src="pict.jpg" align="center" width="100%"/></td>";
 s2:="<td width="40%" align="center"><h3><font color="red" face="Tahoma">";
 s3:="Заголовок";
 s4:="</font></h3><font color="black" face="Comic Sans MS" size="4">";
 s5:="Текст письма";
 s6:="</td><td width="30%"></td></tr></table></body></html>";
 M.Body.Text :=s1+s2+s3+s4+s5+s6;
 IdSMTP1.AuthenticationType := atLogin;
 IdSMTP1.Host := host;
 IdSMTP1.Username := Username;
 IdSMTP1.Password := Password;
 try
 IdSMTP1.Connect();
 except End;
 if IdSMTP1.Connected then
 begin
   IdSMTP1.Send(M);
 end;
 IdSMTP1.Disconnect;
end;

Если вставлять в тело письма просто текст (заремлен в примере), то все ок. Но письмо не очень красивое получается. Вставляю хтмл, то отображает нормально (правда только в TheBat!,а Аутглюк отображает сам хтмл код), а картинки нет (если беру сам хтмл, то в браузере открывается нормально). Как правильно вставить хтмл код в тело письма?
Заране благодарен.


 
KilkennyCat ©   (2008-10-16 04:22) [1]

M.ContentType := "text/plain; - это что?


 
brother ©   (2008-10-16 05:56) [2]

попробуй так:
M.ContentType := "text/html; charset=Windows-1251";


 
brother ©   (2008-10-16 06:19) [3]

> s1:="<html><head></head><body><table width="100%"><tr><td
> width="30%"><img  src="pict.jpg" align="center" width="100%"/></td>";
>
> s2:="<td width="40%" align="center"><h3><font color="red"
> face="Tahoma">";
> s3:="Заголовок";
> s4:="</font></h3><font color="black" face="Comic Sans MS"
> size="4">";
> s5:="Текст письма";
> s6:="</td><td width="30%"></td></tr></table></body></html>";
>
> M.Body.Text :=s1+s2+s3+s4+s5+s6;

лучше так:
M.Body.Text :="<html><head></head><body><table width="100%"><tr><td width="30%"><img  src="pict.jpg" align="center" width="100%"/></td>"+
             "<td width="40%" align="center"><h3><font color="red" face="Tahoma">"+
             "Заголовок"+
             "</font></h3><font color="black" face="Comic Sans MS" size="4">"+
             "Текст письма"+
             "</td><td width="30%"></td></tr></table></body></html>";
зы имхо лучше все обернуть тэгом <table> ;)


 
brother ©   (2008-10-16 06:20) [4]

> зы имхо лучше все обернуть тэгом <table> ;)

упс, проглядел)


 
deras   (2008-10-16 11:26) [5]


> попробуй так:M.ContentType := "text/html; charset=Windows-
> 1251";


Спасибо за ответ, но к сожалению, в TheBat!-е ничего не поменялось, а вот аутглюк показал нормально тело письма, но рисунка нет, хотя от физически лежит в той же папке


 
brother ©   (2008-10-16 12:11) [6]

> но к сожалению, в TheBat!-е ничего не поменялось

так у тебя же там все нормально?

> но рисунка нет, хотя от физически лежит в той же папке

и в какой?


 
Anatoly Podgoretsky ©   (2008-10-16 12:24) [7]

> deras  (16.10.2008 11:26:05)  [5]

В какой той же, C:\ на твоем диске?


 
deras   (2008-10-16 12:38) [8]


> и в какой?



> В какой той же, C:\ на твоем диске?


Блииииин.... вот это затупил.... Нодо ж было полный путь указать!
Теперь все ок!!!
Благодарю, уважаемые Мастера!


 
brother ©   (2008-10-16 12:55) [9]

а какой полный?


 
deras   (2008-10-16 15:07) [10]


> а какой полный?


я указал с:\img\pict.jpg и все пошло :-)


 
KilkennyCat ©   (2008-10-16 23:18) [11]

н-да...


 
brother ©   (2008-10-17 05:02) [12]

> н-да...

вот и я о том же ;)
зы предупреждаю автора топика, что в [10] пошло только у тебя, у других не пойдет... думай далее...)


 
brother ©   (2008-10-17 05:13) [13]

> я указал с:\img\pict.jpg и все пошло :-)

зы, даю намек: в твоем случае, видится именно этот файл с:\img\pict.jpg, а не тот, который прикреплен к письму ;) следовательно, другие, кто получил твое письмо, не имея с:\img\pict.jpg тож ничего не увидят)


 
deras   (2008-10-20 14:31) [14]


> brother ©   (17.10.08 05:13) [13]


блин... вернулся к теме, потому, что так и получилось :-)
не знаю как решить проблемку... Получается, что я тупо не прикрепляю файл?  Тогда как его прикреплять....?


 
Наиль ©   (2008-10-20 14:41) [15]

Создай письмо в оутглюке, отправь себе, посмотри что получилось.


 
deras   (2008-10-20 17:36) [16]


> Наиль ©   (20.10.08 14:41) [15]

на что смотреть в письме? ... что-то я не  понял в чем суть подсказки...


 
han_malign ©   (2008-10-20 18:05) [17]

TIdMessage.MessageParts


 
palva ©   (2008-10-20 20:41) [18]


> на что смотреть в письме?

Смотреть на то, как картинки разложены по multipart-сообщению и как на них делается ссылки из html. Если подобное письмо воспроизвести с помощью почтовых компонент Indy не удастся (что вполне вероятно), то придется использовать Indy Sockets.


 
Vayrus   (2008-10-22 15:45) [19]


> Смотреть на то, как картинки разложены по multipart-сообщению
> и как на них делается ссылки из html. Если подобное письмо
> воспроизвести с помощью почтовых компонент Indy не удастся
> (что вполне вероятно), то придется использовать Indy Sockets.
>


Воспроизвести лично у меня не удалось, с нуля конечно можно письмо создать, ну а если я сторонний файл импортирую, то тут придется парсить странички (практически создание нового документа), а с Инди сокетами не работал. Может у кого есть бесплатный пример ;-) отсылки существующей HTML (HTM) странички через сокеты Инди, поделитесь плиз, если не жалко?


 
palva ©   (2008-10-22 23:58) [20]


> Воспроизвести лично у меня не удалось

Ну неужели у IdMessagePart нет возможности установить нужные нестандартные заголовки? Что-то не верится.
Да и через сокеты - изучаем структуру multipart-сообщения, читаем протокол SMTP, способы авторизации можно подсмотреть в OutlookExpress, если подключить журналирование.
Можно попытаться сохранить страничку в формате mht посредством команд WebBrowser, тогда не надо парсить.

Короче - путей очень много. Естественно, на каждом из них свои трудности. Но конкретные трудности решаются на форуме при помощи конкретных вопросов.


 
Vayrus   (2008-10-23 08:15) [21]


> Можно попытаться сохранить страничку в формате mht посредством
> команд WebBrowser, тогда не надо парсить.
>


Повторюсь. Пробывал отсылать импортированную MHT, не вышло. Я лично могу создать "вручную" письмо с текстом и в качестве аттачментов и соответствующих "заголовков" (multipart-сообщения) прикрутить к нему рисунки, но это не совсем то. Тем более такое письмо отображается не совсем так как нужно, т.е. все нормально, но еще снизу сообщения приписка на скачку рисунка (по крайней мере на Яндексе). Путей, возможно и много, но я знаю только один и то не полноценный и достаточно трудоемкий.


 
brother ©   (2008-10-23 09:04) [22]

вот, что мне пришло раз от мэйла:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
</head>

<BODY bgColor=#ffffff>
<table bgcolor="#004F8D" background="cid:2EBE1883.01C92D4E.17C34BDF.08EFFB60_csseditor" width="670" height="519" cellspacing="0" cellpadding="20">
<tr>
<td align="center" valign="middle" width="414">
<font color="#FFFFFF" face="Tahoma" size="4">Добрый день, Brother!<br>
<br>Ваш почтовый ящик был зарегистрирован ХХХХХХХХХХХХХХХХХХХХ. Эту дату мы помним, и сердечно благодарим Вас за использование Почты Mail.Ru.<br>
В этом году, 15 октября, порталу Mail.Ru исполняется 10 лет. Ваши поздравления портал Mail.Ru принимает на сайте <a href="http://10let.mail.ru"><font color="#FFFFFF">10let.mail.ru</font></a>. <br><br>
Спасибо!<br>
С надеждой на долгое сотрудничество,<br>команда портала Mail.Ru</font></td>
<td width="256" align="center"><img src="cid:2EBE1883.01C92D4E.48AEF864.0EA6EDF9_csseditor"></td>
</tr>
</table>
<BR>
<BR>
__________ NOD32 3522 (20081014) Information __________<BR>
<BR>
This message was checked by NOD32 antivirus system.<BR>
<A HREF="http://www.eset.com">http://www.eset.com</A><BR>

</BODY></HTML>

+2 вложенные картинки.
Все как надо виделось в БАТ... То, что выделено жирным, есть ссылки на картинки, можно покопать в эту сторону
зы я не знаю как это работает...


 
Наиль ©   (2008-10-23 10:44) [23]

> на что смотреть в письме? ... что-то я не  понял в чем суть
> подсказки...

0. Запускаешь OE
1. Создаёшь письмо в HTML формате (не PlainText)
2. Пишешь пару строк текста, желательно латиницей
3. Вставляешь ещё пару строк латиницей
4. Отправляешь письмо себе и получаешь с помощью OE
5. Правой кнопкой смотришь свойства письма
6. В окне свойств жмёшь "Исходный текст..."
7. Изучаешь


 
han_malign ©   (2008-10-23 11:32) [24]


> но еще снизу сообщения приписка на скачку рисунка

Content-Disposition: inline
rfc-2183


> "cid:2EBE1883.01C92D4E.48AEF864.0EA6EDF9_csseditor"
> зы я не знаю как это работает...

RFC 2387                   Multipart/Related                 August 1998
    --example-2
    Content-Type: image/jpeg
    Content-ID: <cid:2EBE1883.01C92D4E.48AEF864.0EA6EDF9_csseditor>
    Content-Transfer-Encoding: BASE64
    Content-Description: Picture B
    Content-Disposition: INLINE

    [encoded jpeg image]
    --example-2--


 
Vayrus   (2008-10-23 11:45) [25]

Мда, спасибо, попробую разобраться ;-)


 
brother ©   (2008-10-23 11:49) [26]

[24] заинтересовало, записал



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.11.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.006 c
2-1223036115
SkyN
2008-10-03 16:15
2008.11.30
critical section timeouts


2-1224746120
JustI
2008-10-23 11:15
2008.11.30
пункт меню в DELPHI7 IDE


8-1188299704
Арт
2007-08-28 15:15
2008.11.30
векторное изображение и работа с ним...


15-1222600425
Кое кто
2008-09-28 15:13
2008.11.30
Купил игру


3-1210762560
Ирина
2008-05-14 14:56
2008.11.30
Как редактировать запись из поля DBEdit в несколько таблиц





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский