Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2012-01-25 08:52:40

  Huk - Smoleńsk BULWA!

Huk
Smoleńsk BULWA!
Zarejestrowany: 2006-11-08

Wysyłanie maila z zawartością interpretowaną jako html - jak to zrobić

Witam.

Pytanie jak w temacie - potrzebuję wysłać maila który w formie tabeli przedstawi dane odbiorcy, maila napisałem, jak wrzucam treść do jakiegoś index.html czy jakiegoś innego miejsca na stronce to wszystko ładnie śmiga, ale jak przesyłam to widziane jest jako zwykły tekst ze wszystkimi znacznikami html jak sprawić żeby u odbiorcy wyświetliła się ładnie w postaci treści HTML?

Z góry dzięki za info.

Pozdro.

Offline

 

#2  2012-01-25 09:01:53

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: Wysyłanie maila z zawartością interpretowaną jako html - jak to zrobić

Ustaw odpowiedni typ MIME dla HTML, bodajże text/html.

Offline

 

#3  2012-01-25 09:32:19

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Wysyłanie maila z zawartością interpretowaną jako html - jak to zrobić

Nie możesz sam do siebie wysłać wiadomości w formacie html (Thunderbird i Kmail obsługują ten format bez kłopotu), a jak dojdzie, otworzyć go w edytorze - źródło maila, i zobaczyć?

Tu masz przykład typowego spamu html: http://ompldr.org/vY2Z2Yg
Wyświetla się prawidłowo :D

Pozdro
;-)

Ostatnio edytowany przez Jacekalex (2012-01-25 09:45:39)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#4  2012-01-25 11:51:08

  gniazdo - Użytkownik

gniazdo
Użytkownik
Skąd: Złotów
Zarejestrowany: 2007-01-12

Re: Wysyłanie maila z zawartością interpretowaną jako html - jak to zrobić

Zawsze możesz skorzystać z funkcji php mail: http://php.net/manual/en/function.mail.php wtedy

Kod:

$headers = 'Content-type: text/html; charset=utf-8' . "\r\n";
mail($to, $subject, $message, $headers);

albo html

Kod:

<form enctype="multipart/form-data"...

application/x-www-form-urlencoded    Default. All characters are encoded before sent (spaces are converted to "+" symbols, and special characters are converted to ASCII HEX values)
multipart/form-data    No characters are encoded. This value is required when you are using forms that have a file upload control

Wyłączy to konwertowanie znaków specjalnych i może ruszy, ale raczej bym liczył na php.

Offline

 

#5  2012-01-26 08:12:34

  Huk - Smoleńsk BULWA!

Huk
Smoleńsk BULWA!
Zarejestrowany: 2006-11-08

Re: Wysyłanie maila z zawartością interpretowaną jako html - jak to zrobić

Dzięki wszystkim za info ale chyba muszę trochę doprecyzować - maila muszę wysłać z poziomu kodu (pewnej firmowej biblioteki napisanej w .NET), i teraz tak - kiedy wysyłam stąd:

http://ctrlq.org/html-mail/

wiadomość (wklejoną w trybie "design") typu:

Kod:

<table border="1">
 <tbody><tr>
 <td>row 1, cell 1</td>
 <td>row 1, cell 2</td>
 </tr>
 <tr>
 <td>row 2, cell 1</td>
 <td>row 2, cell 2</td>
 </tr>
</tbody></table>

to według Outlook'a dochodzi mi coś takiego:

Kod:

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"><table border="1">
 <tbody><tr>
 <td>row 1, cell 1</td>
 <td>row 1, cell 2</td>
 </tr>
 <tr>
 <td>row 2, cell 1</td>
 <td>row 2, cell 2</td>
 </tr>
</tbody></table><br><br>-----------<br>Mail sent from http://ctrlq.org/html-mail

i ładnie wszystko działa,tabela się wyświetla, tyle że jak powyższe wkleję do swojego kodu jako "content", to dochodzi już w trybie zwykłego tekstu, nawet nie ma opcji "Pokaż źródło". W Gmail, "oryginały" wyglądają następująco:

Z linka powyżej:

Kod:

MIME-Version: 1.0
Content-Type: text/html; charset=ISO-8859-1
Message-Id: <20120126070358.2D53A28B4F96@ps6752.dreamhostps.com>
Date: Wed, 25 Jan 2012 23:03:58 -0800 (PST)
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<table border="1">
 <tbody><tr>
 <td>row 1, cell 1</td>
 <td>row 1, cell 2</td>
 </tr>
 <tr>
 <td>row 2, cell 1</td>
 <td>row 2, cell 2</td>
 </tr>
</tbody></table><br><br><br /><br />-----------<br />Mail sent from http://ctrlq.org/html-mail

Zaś z poziomu kodu:

Kod:

Subject: =?utf-8?B?V0HFu05F?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Message-ID: <b829c474-604b-48c0-8259-d614a4474a1f@xxxxxxx>
Return-Path: dzial.kadr@vsoften.de

PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNo
YXJzZXQ9aXNvLTg4NTktMiI+PHRhYmxlIGJvcmRlcj0iMSI+PHRib2R5Pjx0cj48dGQ+cm93
IDEsIGNlbGwgMTwvdGQ+PHRkPnJvdyAxLCBjZWxsIDI8L3RkPjwvdHI+PHRyPjx0ZD5yb3cg
MiwgY2VsbCAxPC90ZD48dGQ+cm93IDIsIGNlbGwgMjwvdGQ+PC90cj48L3Rib2R5PjwvdGFi
bGU+PGJyPjxicj4=

Wyraźnie widać że nie ustawił sobie odpowiedniego MIME, tyle że nie wiem czemu - jedyne co mi do łba przychodzi, to ustawienie serwera w taki sposób że zawsze idzie z niego plain text - no ale może macie jakieś inne wyjaśnienie o którym nie wiem :) ?

Z góry dzięki za info - jak się okaże że to config naszego serwera to może być kicha bo pewnie zmian w tej kwestii nie wymuszę.

Pozdro.

Offline

 

#6  2012-01-26 08:34:27

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: Wysyłanie maila z zawartością interpretowaną jako html - jak to zrobić

Nie wiem jak ci pomóc, najpierw nie napisałeś, że to w .NET (C#? VB?). Zasada skoro nie napisał to pewnie to PHP nie zadziałała ;] Teraz chcesz żebyśmy zgadywali co robisz źle po treści wiadomości, która przychodzi. Może czas żebyś wkleił kod, który wysyła maila? Nie pozostaje odesłać do google, może jakiś konkretny link - http://csharp.net-informations.com/communications/c … tml-email.htm .

Offline

 

#7  2012-01-26 09:09:10

  Huk - Smoleńsk BULWA!

Huk
Smoleńsk BULWA!
Zarejestrowany: 2006-11-08

Re: Wysyłanie maila z zawartością interpretowaną jako html - jak to zrobić

@kamikaze:

Sorry za zamotę, wysyłać staram się z przy wykorzystaniu .NET i C#, niestety jestem zmuszony do korzystania z biblioteki wewnętrznej firmy w której pracuję, a z tego co widzę nigdzie nie idzie ustawić parametru "mail.IsBodyHtml = true;" ani żadnego innego (ani żadnych podobnych) z linka który podałeś - więc pewnie autor modułu nie przewidział że ktoś będzie chciał słać wiadomości html :/

Sposób wysyłania wygląda tak że najpierw tworzę obiekt typu mail i potem ustawiam od kogo, do kogo, temat i na końcu próbowałem na sztywno walnąć treść w stylu:

Kod:

email.Content = "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-2\"><table border=\"1\"><tbody><tr><td>row 1, cell 1</td><td>row 1, cell 2</td></tr><tr><td>row 2, cell 1</td><td>row 2, cell 2</td></tr></tbody></table><br><br>";

,myślałem że wystarczy podać odpowiednio treść a poczta wszystko ładnie sama zinterpretuje... samo wysyłanie realizuje webservice na konfigurację którego nie mam za bardzo wpływu.

Dzięki za pomoc, ale wygląda na to że niewiele z tego będzie, przez ograniczenia biblioteki (no chyba że macie jakieś inne pomysły).

Pozdro.

Offline

 

#8  2012-01-26 09:20:35

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: Wysyłanie maila z zawartością interpretowaną jako html - jak to zrobić

Może po prostu skontaktuj się z twórcą tej biblioteki, skoro pracujecie w jednej firmie nie powinien być to problem. Pewnie podpowie jak to zrobić, a jeśli biblioteka tego nie umożliwia może uda się ją rozbudować.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)