Witam. Mój problem jest nieco dziwny. Pododawałem do kodu wszystko co jest potrzebne, a przynajmniej tak mi się wydaje. W wysyłanym mailu przesyłam strukturę HTML, a dokładniej mówiąc kilka tabel. Cała wiadomość jest podzielona na trzy części i łączę je poźniej:
$message = "cos";
for($i=0;$i<iles;$i++)
{
$message .= "cos2";
}
$message .= "cos3";


I co jest dziwne, gdy wysyłałem $message = $czesc1.$czesc2 lub $message = $czesc1.$czesc3 lub $message = $czesc2.$czesc3 to wszystko było ok. Zaś gdy $message = $czesc1.$czesc2.$czesc3 wywalało błąd, że nie wysłało. Co jest jeszcze lepsze wszystkie trzy cześci wysłało mi, ale gdy pętla miała tylko jeden ruch, czyli jeden wiersz.
I nie rozumiem tego. Cześć 1 i 3 w pojedynczym połączeniu z częścią 2, która nawet miała 6 wierszy czyli 6 kroków, wysłało poprawnie.
To dlaczego nie wysyła wszystkiego razem przy większej ilości kodu html?
Od razu mówię, że kod był sprawdzany na darmowym serwerze Yoyo.pl.

Podam cały kod i jak ktoś będzie wiedział co zrobiłem źle, to proszę o poinformowanie mnie o tym i chociażby drobną pomoc.

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2">
  5. </head>
  6. <body>
  7. <?php
  8.  
  9. //tutaj są oczywiście tablice z potrzebnymi danymi
  10.  
  11. $dane = array();
  12. $dane['Produkty'] = $_POST['produkt'];
  13.  
  14. $mess1 = "<p>Otrzymałeś zamówienie od: ".$_POST['name']." ".$_POST['surname']."</p><p>Oto dane zamówienia: </p><table border='1' style='border-style: none; border-collapse: collapse;'><tr><td style='padding-right: 15px; padding-left: 15px; padding-top: 2px; padding-bottom: 2px; text-align:center;' width='20px'><p>Lp.</p></td><td style='padding-right: 15px; padding-left: 15px; padding-top: 2px; padding-bottom: 2px; text-align:center;' width='100px'><p>Produkt:</p></td><td style='padding-right: 15px; padding-left: 15px; padding-top: 2px; padding-bottom: 2px; text-align:center;'><p>Rozmiar:</p></td><td style='padding-right: 15px; padding-left: 15px; padding-top: 2px; padding-bottom: 2px; text-align:center;'><p>Cena brutto:</p></td><td style='padding-right: 15px; padding-left: 15px; padding-top: 2px; padding-bottom: 2px; text-align:center;'><p>Ilość:</p></td><td style='padding-right: 15px; padding-left: 15px; padding-top: 2px; padding-bottom: 2px; text-align:center;'><p>Wartość brutto:</p></td><td style='padding-right: 15px; padding-left: 15px; padding-top: 2px; padding-bottom: 2px; text-align:center;' width='200px'><p>Uwagi:</p></td></tr>";
  15.  
  16. for($i = 0; $i < count($dane['Produkty']); $i++)
  17. {
  18. $loop = $i +1;
  19. $group = $_POST['grupa'][$i];
  20. $prod = $_POST['produkt'][$i];
  21. $mess2 .= "<tr><td style='padding-right: 15px; padding-left: 15px; padding-top: 2px; padding-bottom: 2px; text-align:center;' width='20px'>".$loop."</td><td style='padding-right: 15px; padding-left: 15px; padding-top: 2px; padding-bottom: 2px; text-align:center;' width='100px'>".$product[$group][$prod]."</td><td style='padding-right: 15px; padding-left: 15px; padding-top: 2px; padding-bottom: 2px; text-align:center;'>".$_POST['rozmiar'][$i]."</td><td style='padding-right: 15px; padding-left: 15px; padding-top: 2px; padding-bottom: 2px; text-align:center;'>".$_POST['cena'][$i]."</td><td style='padding-right: 15px; padding-left: 15px; padding-top: 2px; padding-bottom: 2px; text-align:center;'>".$_POST['ilosc'][$i]."</td><td style='padding-right: 15px; padding-left: 15px; padding-top: 2px; padding-bottom: 2px; text-align:center;'>".$_POST['wartosc'][$i]."</td><td style='padding-right: 15px; padding-left: 15px; padding-top: 2px; padding-bottom: 2px; text-align:center;' width='200px'>".$_POST['uwagi'][$i]."</td></tr></table><br />";
  22. }
  23. $deliv = $_POST['delivery'];
  24. $paymnt = $_POST['payment'];
  25. $mess3 .= "<p>Dodatkowe informacje kontaktowe: </p><table border='1' style='border-style: none; border-collapse: collapse;'><tr><td style='padding-right: 15px;padding-left: 15px; padding-top: 2px; padding-bottom: 2px;'><p>Imię: </p></td><td style='padding-right: 15px; padding-left: 15px; padding-top: 2px; padding-bottom: 2px;'>".$_POST['name']."</td></tr><tr><td style='padding-right: 15px; padding-left: 15px; padding-top: 2px; padding-bottom: 2px;'><p>Nazwisko: </p></td><td style='padding-right: 15px; padding-left: 15px; padding-top: 2px; padding-bottom: 2px;'>".$_POST['surname']."</td></tr><tr><td style='padding-right: 15px; padding-left: 15px; padding-top: 2px; padding-bottom: 2px;'><p>Firma: </p></td><td style='padding-right: 15px; padding-left: 15px; padding-top: 2px; padding-bottom: 2px;'>".$_POST['company']."</td></tr><tr><td style='padding-right: 15px; padding-left: 15px; padding-top: 2px; padding-bottom: 2px;'><p>NIP: </p></td><td style='padding-right: 15px; padding-left: 15px; padding-top: 2px; padding-bottom: 2px;'>".$_POST['nip']."</td></tr><tr><td style='padding-right: 15px; padding-left: 15px; padding-top: 2px; padding-bottom: 2px;'><p>E-mail: </p></td><td style='padding-right: 15px; padding-left: 15px; padding-top: 2px; padding-bottom: 2px;'>".$_POST['mail']."</td></tr><tr><td style='padding-right: 15px; padding-left: 15px; padding-top: 2px; padding-bottom: 2px;'><p>Dodatkowe informacje kontaktowe: </p></td><td style='padding-right: 15px; padding-left: 15px; padding-top: 2px; padding-bottom: 2px;'>".$_POST['moreinfo']."</td></tr><tr><td style='padding-right: 15px; padding-left: 15px; padding-top: 2px; padding-bottom: 2px;'><p>Telefon: </p></td><td style='padding-right: 15px; padding-left: 15px; padding-top: 2px; padding-bottom: 2px;'>".$_POST['phone']."</td></tr></table><br /><p>Dodatkowe informacje o zamówieniu: </p><table border='1' style='border-style: none; border-collapse: collapse;'></tr><tr><td style='padding-right: 15px; padding-left: 15px; padding-top: 2px; padding-bottom: 2px;'><p>Sposób dostawy: </p></td><td style='padding-right: 15px; padding-left: 15px; padding-top: 2px; padding-bottom: 2px;'>".$delivery[$deliv]."</td></tr><tr><td style='padding-right: 15px; padding-left: 15px; padding-top: 2px; padding-bottom: 2px;'><p>Forma płatności: </p></td><td style='padding-right: 15px; padding-left: 15px; padding-top: 2px; padding-bottom: 2px;'>".$payment[$paymnt]."</td></tr></table>";
  26.  
  27. $to = 'mojmail@o2.pl';
  28. $from = $_POST['mail'];
  29. $subject = 'Zamówienie';
  30. $message1 = $mess1.$mess2; // tutaj już kombinowałem
  31. $message = $message1.$mess3;
  32.  
  33. $headers = "MIME-Version: 1.0\r\n";
  34. $headers .= "Content-type: text/html; charset=ISO-8859-2\r\n";
  35. $headers .= "Content-Transfer-Encoding: 8bit\r\n";
  36. $headers .= "From: " . $from . "\r\n";
  37.  
  38. $mailsent = mail($to, $subject, $message, $headers);
  39. if($mailsent)
  40. {
  41. echo "<p>Gratulacje! Zamówienie właśnie zostało wysłane poprawnie.</p><br /><br />";
  42. }
  43. else
  44. {
  45. echo "<p>Podczas wysyłania zamówienia wystąpił błąd.</p>";
  46. }
  47. ?>
  48. </body>
  49. </html>


Sprawdziłem na CBA.PL i tam poszło bez problemu. Czyli mówiąc krótko serwer Yoyo.pl jest złe skonfigurowany pod względem wysyłania wiadomości e-mail?!
Jeśli ktoś będzie chciał wyrazić swoje zdanie, zachęcam do wypowiedzi wink.gif