Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Wysyłanie maili
Forum PHP.pl > Forum > Przedszkole
XxmanxX
Witam, czy możecie sprawdzić mi kod. Czasami w otrzymanym mailu są widoczne znaczniki albo tekst nie ma określonych kolorow lub wartość funkcji date('d-m-Y / H:i',$problem_start_date_time) zamiast znajdować się po "Problem start date / time:"
jest gdzieś na początku

  1. $to=$zmienna;
  2. $subject ="SUBJECT";
  3. $message ="<STYLE type='text/css'>th.title{color:white;background-color:red;font-size:40px} td{width:320;font-family:sans-serif;font-size:14px;font-weight:bold} td.description{color:black}</STYLE>";
  4. $message .="<table border=0 cellpadding=0 cellspacing=1 width='100%'><tr><th class='title'>HEADER</th></tr></table>";
  5. $message .="<div class='description'><p>TEXT</p><p>TEXT:</p></div>";
  6. $message .="<table border=0 cellpadding=7 cellspacing=1 width='100%'><tr><td>Message date / time:</td><td>".date('d-m-Y / H:i')."</td></tr>";
  7. $message .="<tr><td>Service:</td><td><font color=red>$result[category] -> $result[service]</font></td></tr>";
  8. $message .="<tr><td>Status:</td><td><font color=red>DETECTED AND OPEN</font></td></tr>";
  9. $message .="<tr><td>Problem description:</td><td><font color=red>".nl2br($_POST[problem_description])."</font></td></tr>";
  10. $message .="<tr><td>Main impacted applications & services:</td><td><font color=red>".nl2br($_POST[main_impacted])."</font></td></tr>";
  11. $message .="<tr><td>Problem start date / time:</td><td>".date('d-m-Y / H:i',$problem_start_date_time)."</td></tr></table>";
  12. $message .="<div class='description'><p>TEXT</p><p>TEXT</p><p>TEXT</p><p>TEXT</p>
  13. <p>
  14. -------------------------------------------------------------------------------------<br/>
  15. <b>FOOTER</b><br/>
  16. -------------------------------------------------------------------------------------<br/>
  17. <i>This is an automatic email. Please, do not reply.</i></p></div>";
  18. $headers ="MIME-Version: 1.0"."\n";
  19. $headers .="Content-type: text/html; charset=iso-8859-2"."\n";
  20. $headers .="Content-Transfer-Encoding: 8bit"."\n";
  21. $headers .="From: admin@domain.com"."\n";
  22. $mailsent = mail($to,$subject,$message,$headers);


Czy w wiadomościach moze byc CSS czy lepiej wszystko html zastąpić ?
Pozdrawiam
thek
Zadaj sobie pytanie: "Jako co wysłałeś maila userowi? Czysty tekst czy html?" a życie stanie się prostsze gdy użyjesz header winksmiley.jpg
XxmanxX
Chce wyslać html i tekst.
Moge troche jaśniej prosić:)?
Mam coś takiego w tym momencie, wywaliłem css:

  1. $to=$result[sent_to];
  2. $subject ='przykladowy tekst';
  3. $message ="<table border='0' cellpadding='0' cellspacing='1' width='100%'><tr><th bgcolor='orange'><font size=7 color='white'>HEADER</font></th></tr></table>";
  4. $message .="<p>przykladowy teskst</p><p>przykladowy teskst :</p>";
  5. $message .="<table border='0' cellpadding='10' cellspacing='1' width='100%'>";
  6. $message .="<tr><td width=320><font face='arial'>Przykladowy teskst:</font></td><td><font face='arial'>".date('d-m-Y / H:i')."</font></td></tr>";
  7. $message .="<tr><td width=320><font face='arial'>Przykladowy teskst:</font></td><td><font face='arial' color='orange'>$result[pole_z_bazy] -> $result[pole_z_bazy]</font></td></tr>";
  8. $message .="<tr><td width=320><font face='arial'>Przykladowy teskst:</font></td><td><font face='arial' color='orange'>przykladowy teskst</font></td></tr>";
  9. $message .="<tr><td width=320><font face='arial'>Przykladowy teskst:</font></td><td><font face='arial' color='orange'>".nl2br($_POST[pole_z_bazy])."</font></td></tr>";
  10. $message .="<tr><td width=320><font face='arial'>Przykladowy teskst & tekst:</font></td><td><font face='arial' color='orange'>".nl2br($_POST[main_impacted])."</font></td></tr>";
  11. $message .="<tr><td width=320><font face='arial'>Przykladowy teskst:</font></td><td><font face='arial'>".date('d-m-Y / H:i',$result[pole_z_bazy])."</font></td></tr>";
  12. if(!empty($_POST[pole_z_formularza])){
  13. $message .="<tr><td width=320><font face='arial'>Przykladowy teskst:</font></td><td><font face='arial'>".nl2br($_POST[pole_z_formularza])."</font></td></tr>";
  14. }
  15. if(!empty($zmienna)){
  16. $message .="<tr><td width=320><font face='arial'>Przykladowy teskst:</font></td><td><font face='arial'>".date('d-m-Y / H:i',$zmienna)."</font></td></tr></table>";
  17. }else{
  18. $message .="<tr><td width=320><font face='arial'>Przykladowy teskst:</font></td><td><font face='arial'>Not defined</font></td></tr></table></table>";
  19. }
  20. $message .="<p>Przykladowy tekst.</p><p>Przykladowy tekst.</p><p>Przykladowy tekst,</p><p>
  21. -------------------------------------------------------------------------------------<br/>
  22. <b>FOOTER</b><br/>
  23. -------------------------------------------------------------------------------------<br/>
  24. <i>This is an automatic email. Please, do not reply.</i></p>";
  25. $headers ="MIME-Version: 1.0"."\n";
  26. $headers .="Content-type: text/html; charset=iso-8859-2"."\n";
  27. $headers .="Content-Transfer-Encoding: 8bit"."\n";
  28. $headers .="From: admin@domain.com"."\n";
  29. $mailsent = mail($to,$subject,$message,$headers);


Jak uzupełniłem formularz jakimiś tam danymi i email sie wyslal to w źródle otrzymanej stronki HTML widzi spacje między < /tr> w linii ze zmienną $_POST[main_impacted], czyli w treści wiadomości jest widoczny znacznik zamykający < /tr> a nie powinien być.
thek
Na początek to sprawdź co Ci przechodzi z POST i weź popraw $_POST[pole] na $_POST['pole'] bo może się o to burzyć. Weź zresztą jakąś walidację pól zrób bo teraz ataki mogą Ci stronę rozwalić. Poza tym czemu nie sprawdzasz co tam jest. Jeśli będa apostrofy lub cudzysłowy to też może Ci się sypać.
XxmanxX
przez POST przechodza znaki alfabetu,_(podkreslenie) i cyfry oddzielone spacjami, poki co sam sobie to testuje dlatego brak jest odpornosci na ataki, zakladam wprowadzenie poprawnych danych wejsciowych.
Dodal apostrofy $_POST['pole'] ale nie pomoglo.
Pozdrawiam

Rozwiązanie:
  1. $to=$zmiennal
  2. $subject ='text';
  3. $message ='
  4. <STYLE type=text/css>th.title{color:white;background-color:red;font-size:40px} td.property{width:320px;font-family:sans-serif;color:black;font-size:14px} td.value{color:red;text-align:left;font-family:sans-serif;font-weight:bold;font-size:14px}</STYLE>
  5. <table border=0 cellpadding=0 cellspacing=1 width=100%><tr><th class=title>HEADER</th></tr></table>
  6. <p>Hello,</p><p>PRZYKLADOWY TEXT :</p>
  7. <table border=0 cellpadding=10 cellspacing=1 width=100%>
  8. <tr><td class=property>parametr:</td><td class=value>'.date('d-m-Y / H:i').'</td></tr>
  9. <tr><td class=property>parametr:</td><td class=value>'.$result[category].' -> '.$result[service].'</td></tr>
  10. <tr><td class=property>parametr:</td><td class=value>wartosc</td></tr>
  11. <tr><td class=property>parametr:</td><td class=value>'.nl2br($_POST['pole_z_formularza']).'</td></tr>
  12. <tr><td class=property>parametr:</td><td class=value>'.nl2br($_POST['pole_z_formularza']).'</td></tr>
  13. <tr><td class=property>parametr:</td><td class=value>'.date('d-m-Y / H:i',$result[pole_z_tabeli]).'</td></tr></table>
  14. <p>PRZYKLADOWY TEKST</p>
  15. ';
  16. include('footer.php');
  17. $headers ='MIME-Version: 1.0'."\n";
  18. $headers .='Content-type: text/html; charset=iso-8859-2'."\n";
  19. $headers .='Content-Transfer-Encoding: 8bit'."\n";
  20. $headers .='From: admin@domainpl'."\n";
  21. $mailsent = mail($to,$subject,$message,$headers);
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.