Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> SwiftMailer - znaczniki html
brutal1985
post
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 27.08.2011

Ostrzeżenie: (0%)
-----


Witam.
Chciałbym się zapytać, czy istnieje (jeśli tak, to w jaki sposób?) możliwość odczytania znaczników HTML przesyłanych w treści wiadomości email za pomocą biblioteki SwiftMailer.
Mam oto taki kod, obsługujący wysyłanie wiadomości email:
  1. $autor = $_POST['autor'];
  2. $email_autora = $_POST['email'];
  3. $odbiorca = $_POST['odbiorca'];
  4. $tytul= addslashes($_POST['tytul']);
  5. $tresc = addslashes($_POST['tresc']);
  6. include "swift/lib/swift_required.php";
  7. $mailMessage = Swift_Message::newInstance();
  8. $mailMessage->setSubject($tytul);
  9. $mailMessage->setFrom(array($email_autora => $autor));
  10. $mailMessage->setTo(array($odbiorca));
  11. $mailMessage->setBody($tresc,'text/html','iso-8859-2');
  12. $transport = Swift_MailTransport::newInstance();
  13. $mailer = Swift_Mailer::newInstance($transport);
  14. $mailResult = $mailer->send($mailMessage, $aMailFailures);
  15. if (!$mailResult)
  16. {
  17. echo "Wystąpił błąd: ";
  18. print_r($aMailFailures);
  19. }

Chodzi mi o to, aby w treści wysłanej wiadomości email zamiast znaczników HTML typu <br>, <b>, itd. znajdowały się zinterpretowane wartości, np. przejście do nowej linii, czy też pogrubienie tekstu. Ewentualnie zamiast znaczników HTML mógłby być BBCode.

Ten post edytował brutal1985 17.11.2011, 20:04:59
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
wujek2009
post
Post #2





Grupa: Zarejestrowani
Postów: 350
Pomógł: 31
Dołączył: 23.05.2010

Ostrzeżenie: (0%)
-----


Ja używam;
  1. $swift ->addPart($message, 'text/html');


gdzie $message to właśnie widok, w którym mam kod HTMLa i normalnie odczytuje go w skrzynkach pocztowych.
Zmień po prostu sposób wysyłki.
Go to the top of the page
+Quote Post
brutal1985
post
Post #3





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 27.08.2011

Ostrzeżenie: (0%)
-----


A w jaki sposób mam go zmienić? Bo przyznam się szczerze po raz pierwszy mam do czynienia ze SwiftMailer.

Znalazłem coś w tym stylu, ale skrypt ten nie chce mi działać.
  1. $Msg->setBody($Content, "text/html");
  2. $Msg->addPart(StripHtml ($Content), "text/plain");
  3.  
  4. //------ StripHtml(): -------------------
  5. function StripHtml ($Text)
  6. {
  7. $T = str_replace ("&nbsp;", " ", $Text); // "&nbsp;" to spatie
  8. $T = str_replace ("/\r\n/", "\n", $T); // "\r\n" to "\n"
  9. $T = preg_replace ("/[\x20\x9]*<td[^>]*>[\n]?/", "\t", $T); // "<td>" to "\t"
  10. $T = preg_replace ("/[\x20\x9]*<\/tr[^>]*>[\n]?/", "\n", $T); // "</tr>\n" to "\n"
  11. $T = preg_replace ("/<\/t[drh][^>]*>[\n]?/", "", $T); // remove "</td>", "</tr>", "</th>"
  12. $T = preg_replace ("/<\/title[^>]*>[\n]?/", "\n", $T); // "</title>" to "\n"
  13. $T = preg_replace ("/<\/table[^>]*>[\n]?/", "\n", $T); // "</table>" to "\n"
  14. $T = preg_replace ("/[\x20\x9]*<table[^>]*>[\n]?/", "", $T); // remove "<table>"
  15. $T = preg_replace ("/[\x20\x9]*<tbody[^>]*>[\n]?/", "", $T); // remove "<tbody>"
  16. $T = preg_replace ("/[\x20\x9]*<thead[^>]*>[\n]?/", "", $T); // remove "<thead>"
  17. $T = preg_replace ("/[\x20\x9]*<tfoot[^>]*>[\n]?/", "", $T); // remove "<tfoot>"
  18. $T = preg_replace ("/<br[^>]*>[\n]?/", "\n", $T); // "<br>\n" to "\n"
  19. $T = preg_replace ("/<\/p[^>]*>[\n]?/", "\n", $T); // "</p>\n" to "\n"
  20. $T = preg_replace ("/<\/h\d[^>]*>[\n]?/", "\n", $T); // "</h1>" etc. to "\n"
  21. $T = preg_replace ("/<\/?b>/", "*", $T); // "<b>" and "</b>" to "*"
  22. $T = preg_replace ("/<\/?i>/", "/", $T); // "<i>" and "</i>" to "/"
  23. $T = preg_replace ("/<[^>]*>[\n]?/", "", $T); // remove all other HTML-tags
  24. return ($T);
  25. } // "StripHtml()"

ma ktoś jakiś pomysł, jak to rozwiązać?
Go to the top of the page
+Quote Post
wujek2009
post
Post #4





Grupa: Zarejestrowani
Postów: 350
Pomógł: 31
Dołączył: 23.05.2010

Ostrzeżenie: (0%)
-----


Po prostu w Twoim kodzie (pierwszy post) zamiast
  1. $mailMessage->setBody($tresc,'text/html','iso-8859-2');


daj
  1. $mailMessage ->addPart($tresc, 'text/html');


Pozostałej części Twojego kodu nie sprawdzałem, ale w manualu SwiftMailera masz elegancko opisane jak wysyłać e-maile.
Stąd w razie problemów po prostu zapraszam do dokumentacji.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 08:57