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/urandom
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: [url=http://ompldr.org/vY2Z2Yg]http://ompldr.org/vY2Z2Yg[/url]
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: [url]http://php.net/manual/en/function.mail.php[/url] 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:

[url]http://ctrlq.org/html-mail/[/url]

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/csharp-html-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
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)

[ Generated in 0.011 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00011 SET CHARSET latin2
0.00004 SET NAMES latin2
0.00125 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.141.7.165' WHERE u.id=1
0.00186 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.141.7.165', 1732344811)
0.00042 SELECT * FROM punbb_online WHERE logged<1732344511
0.00095 SELECT topic_id FROM punbb_posts WHERE id=191695
0.00005 SELECT id FROM punbb_posts WHERE topic_id=20488 ORDER BY posted
0.00111 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=20488 AND t.moved_to IS NULL
0.00006 SELECT search_for, replace_with FROM punbb_censoring
0.00234 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=20488 ORDER BY p.id LIMIT 0,25
0.00104 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=20488
Total query time: 0.00923 s