Body van meerdere lijnen wordt niet goed gemaild met PHPmailer

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jacob de Jong

Jacob de Jong

14/08/2018 18:04:59
Quote Anchor link
Hallo allemaal,
Ik heb een raar probleempje bij het versturen van een formulier met PHPmailer. Het idee is dit:
$message = 'content<br>';
$message .= 'more content<br>';
$message .= 'yet content<br>';
$mail->Body = $message;

Dus $message aanvullen met regels en daarna mailen. Voeg ik echter meer dan 2 of 3 regeltjes toe dan wordt er in het geheel geen mail meer verstuurd. Maar een echo naar het scherm gaat wel goed. $message is dus goed, maar wordt niet verstuurd.

Enig idee? Is $message niet meer dan 3 regeltjes dan is geen enkel probleem. Dit is het complete PHP-schript waar het om gaat:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<?php
    use PHPMailer\PHPMailer\PHPMailer;
    include_once "PHPMailer/PHPMailer.php";
    include_once "PHPMailer/Exception.php";
    include_once "PHPMailer/SMTP.php";

    header('Content-Type: text/html; charset=Windows-1252');

    $message = "";
    $content = "";

    if (isset($_POST['submit'])) {
        $naam = $_POST['naam'];
        $adres = $_POST['adres'];
        $woonplaats = $_POST['woonplaats'];
        $land = $_POST['land'];
        $email = $_POST['email'];
        $aantal = $_POST['aantal'];
        $verzenden = $_POST['verzenden'];
        $opmerkingen = $_POST['opmerkingen'];
        $jaar = substr(date("y"),-1);
        if ($verzenden == "afhalen"){
           $verzendkosten = "0.00";
        }
else {
           $verzendkosten = "6.50";
        }

        $subtotaal = $aantal * 37.50;
        $totaal = $subtotaal + $verzendkosten;
        $BTW = $totaal * 0.173554;
        $weergavetotaal = number_format($totaal, 2, ',', '.');
        $weergavesubtotaal = number_format($subtotaal, 2, ',', '.');
        $weergaveBTW = number_format($BTW, 2, ',', '.');
        $weergaveverzendkosten = number_format($verzendkosten, 2, ',', '.');

        // IP van de verstuurder
        $ip = '';
        if (getenv('HTTP_CLIENT_IP'))
            $ip = getenv('HTTP_CLIENT_IP');
        else if(getenv('HTTP_X_FORWARDED_FOR'))
            $ip = getenv('HTTP_X_FORWARDED_FOR');
        else if(getenv('HTTP_X_FORWARDED'))
            $ip = getenv('HTTP_X_FORWARDED');
        else if(getenv('HTTP_FORWARDED_FOR'))
            $ipa = getenv('HTTP_FORWARDED_FOR');
        else if(getenv('HTTP_FORWARDED'))
            $ip = getenv('HTTP_FORWARDED');
        else if(getenv('REMOTE_ADDR'))
            $ip = getenv('REMOTE_ADDR');
        else
            $ip = 'ONBEKEND';
          
        $factuurip = substr($ip,-2);
        $factuurmin = substr(date('i'),-1);  

        $content = "" .$naam. "<br>";
        $content .= "" .$adres. "<br>";
        $content .= "" .$woonplaats. "<br>";
        $content .= "" .$land. "<br>";
        $content .= "e-Mail: " .$email. "<br>&nbsp;<br>&nbsp;<br>";
        $content .= "FACTUUR <br>&nbsp;<br>";
        $content .= "Factuurdatum: ".date("j-m-Y")."<br>";
        $content .= "Factuurnummer: " .$jaar. "" .date("md"). "-" .$factuurip. "" .$factuurmin. "<br>&nbsp;<br>&nbsp;<br>";
        $content .= "Hartelijke dank voor de volgende bestelling:  <br>";
        $content .= "_________________________________________________________________________  <br>&nbsp;<br>";
        $content .= "" .$aantal. " Stuk(s) a 37,50 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . € " .$weergavesubtotaal. "<br>&nbsp;<br>";
        $content .= "Bijdrage in de verzendkosten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . € " .$weergaveverzendkosten. "<br>";
        $content .= "Levering: ".$verzenden." <br>&nbsp;<br>";
        $content .= "_________________________________________________________________________  <br>&nbsp;<br>";
        $content .= "BTW 21% € " .$weergaveBTW. " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Totaal  € " .$weergavetotaal. "<br>&nbsp;<br>&nbsp;<br>";
        $content .= "Uw bestelling is definitief zodra het totaalbedrag van € " .$weergavetotaal. " <br>";        
        $content .= "is ontvangen o.v.v. het bovenstaande factuurnummer*  <br>&nbsp;<br>";
        $content .= "Uw opmerkingen: <br>";
        $content .= "" .$opmerkingen. "<br>&nbsp;<br>";
        $content .= "*Zonder tegenbericht bedraagt de levertermijn enkele dagen.  <br>";
        $content .= "*Afhalen alleen op afspraak. Bij afhalen is PIN-betaling mogelijk.  <br>";
        $content .= "Dit formulier is ingevuld vanaf IP-nummer " .$ip. " op ".date("j M Y")." om ".date("G:i")."<br>&nbsp;<br>";
        $message = $content;

        $mail = new PHPMailer();
        //verstuur via SMTP
        $mail->Host = "smtp.mail.pcextreme.nl";
        //$mail->isSMTP();
        $mail->SMTPAuth = true;
        $mail->Username = "[email protected]";
        $mail->Password = "passsword";
        $mail->SMTPSecure = "TLS"; //SSL
        $mail->Port = 587; //465
        $mail->addAddress($email, $naam);
        $mail->setFrom('[email protected]');
        $mail->Subject = "Bestelling";
        $mail->isHTML(true);
                $mail->Body = $message;
        if ($mail->send()) {
          echo $message;
                }    
    }

?>


<!doctype html>

<html>
blabla
</html>
 
PHP hulp

PHP hulp

23/11/2024 09:15:26
 
- Ariën  -
Beheerder

- Ariën -

14/08/2018 19:39:10
Quote Anchor link
Is het niet een gevalletje van dat het als spam wordt herkend door een filter. Wat voor tekst triggert het niet-versturen?
 
Jacob de Jong

Jacob de Jong

15/08/2018 13:17:02
Quote Anchor link
Hallo Ariën,
Probleem heb ik vanmorgen getekkeld: Het is alleen bij gebruik van PHPmailer en PHP 7.1 of 7.2. Ik heb PHP teruggezet naar 5.6 en dan werkt het feilloos.

Zodra bij gebruik van PHP 7 en PHPmailer er in de body iets teveel aan <br>, @ e.d. staat dan werkt het niet meer. Als ik puure tekst verstuur gaat het goed, druk ik er bijvoorbeeld een stuk of 5 '@' bij in dan wordt het niet meer verstuurd.

Het lijkt er dus op dat het niet helemaal compatible is. Zolang 5.6 wordt aangeboden ben ik uit de problemen, en dan zal er wel een update zijn.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.