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.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2">
</head>
<body>
<?php
//tutaj są oczywiście tablice z potrzebnymi danymi
$dane['Produkty'] = $_POST['produkt'];
$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>";
for($i = 0; $i < count($dane['Produkty']); $i++) {
$loop = $i +1;
$group = $_POST['grupa'][$i];
$prod = $_POST['produkt'][$i];
$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 />";
}
$deliv = $_POST['delivery'];
$paymnt = $_POST['payment'];
$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>";
$to = 'mojmail@o2.pl';
$from = $_POST['mail'];
$subject = 'Zamówienie';
$message1 = $mess1.$mess2; // tutaj już kombinowałem
$message = $message1.$mess3;
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=ISO-8859-2\r\n";
$headers .= "Content-Transfer-Encoding: 8bit\r\n";
$headers .= "From: " . $from . "\r\n";
$mailsent = mail($to, $subject, $message, $headers); if($mailsent)
{
echo "<p>Gratulacje! Zamówienie właśnie zostało wysłane poprawnie.</p><br /><br />"; }
else
{
echo "<p>Podczas wysyłania zamówienia wystąpił błąd.</p>"; }
?>
</body>
</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