php 8.1 html email in raw formaat

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Daniel van Seggelen

Daniel van Seggelen

11/09/2022 04:30:04
Quote Anchor link
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
class CHmail{
    var $to = null;
    var $from = null;
    var $reply = null;
    var $subject = null;
    var $body = null;
    var $headers = null;

   public function __construct($to,$from,$reply,$subject,$body){
        $this->to      = $to;
        $this->from    = $from;
        $this->reply    = $reply;
        $this->subject = $subject;
        $this->body    = $body;
    }



     public  function send(){
        
      $this->addHeader('From: '.$this->from." <".$this->reply."> \n");
        $this->addHeader('Reply-To: '.$this->reply."\n");
        $this->addHeader('Return-Path: '.$this->from."\n");
        $this->addHeader('X-mailer: ZFmail 1.0'."\n");
        $this->addHeader('Content-type: text/html; charset=utf-8'."\n");
    

    
        mail($this->to,$this->subject,$this->body,$this->headers);
    }

    function addHeader($header){
        $this->headers .= $header;
    }

}



Dan gebruik ik de mail zo

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
ob_start();
                        include(DOC_ROOT.'inc/email_contact.php');
                        $myHTML = ob_get_clean();
                        $bericht = preg_replace('~[\n\r\s]+~',' ', $myHTML);                        
                        $email = 'info@'.TRADE_URL.'';
                        $mailReg = new CHmail($_POST['contact-email'],$from,$reply,'Contact '.TRADE_URL.'',$bericht);
                        $mailReg->send();    




De mail word verstuurd in Raw format.
Terwijl dit html emails zijn.
Dit is gebeurd net toen ik de overzetting naar php8.1 heb gemaakt;
In php 7.3 werkte alles prima.

Kent iemand dit probleem?
 
PHP hulp

PHP hulp

01/06/2023 20:31:53
 
- Ariën  -
Beheerder

- Ariën -

11/09/2022 10:21:57
Quote Anchor link
Onderdeel van Zend Framework?
Heb je die al geupdated?

Ikzelf gebruik phpMailer.
 
Daniel van Seggelen

Daniel van Seggelen

11/09/2022 16:29:54
Quote Anchor link
Zal wel weer aan mij liggen, maar krijg phpmailer niet aan de praat:
Heb dit maar even gevolgd:

https://help.dreamhost.com/hc/en-us/articles/360031176531-PHPMailer-Installing-on-a-VPS-or-Dedicated-server

Quote:
<b>Fatal error</b>: Uncaught Error: Class &quot;PHPMailer&quot; not found in /home/pmtdc/domains/domainnl/private_html/inc/contact.php:47
Stack trace:
#0 /home/pmtdc/domains/domain.nl/private_html/index.php(161): include()
#1 {main}
thrown in <b>/home/pmtdc/domains/domain.nl/private_html/inc/contact.php</b> on line <b>47</b><br />


in index bovenaan heb ik het volgende:

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

Denk dat phpmailer niet bugvrij is.

Ik heb het zonder comoser ook gedownload , met dezelfde errors
Gewijzigd op 11/09/2022 16:31:03 door Daniel van Seggelen
 
- Ariën  -
Beheerder

- Ariën -

11/09/2022 16:36:49
Quote Anchor link
Niet bugvrij? Het werkt prima.
Blijkbaar lees je de handleiding niet goed? :-P

https://github.com/PHPMailer/PHPMailer

Check de includes.
Of gebruik composer en roep de autoLoader aan. Veel praktischer.
Gewijzigd op 11/09/2022 16:39:02 door - Ariën -
 
Daniel van Seggelen

Daniel van Seggelen

11/09/2022 16:44:02
Quote Anchor link
Ik had het eerst met composer geinstalleerd, zoals ik aangaf. Dit werkte niet.
Daarna manueel gedownload en de paden ingesteld. Ik volg alles exact zoals in de manuel staat.
Maar het werkt voor geen meter. Blij dit krijgen:

<b>Fatal error</b>: Uncaught Error: Class &quot;PHPMailer&quot; not found in
 
- Ariën  -
Beheerder

- Ariën -

11/09/2022 16:46:51
Quote Anchor link
Heb je wel "composer update" gedaan?
Enkel requiren met composer downloadt nog niks.
O ja, het downloadt toch wel.

Toevoeging op 11/09/2022 16:51:12:

Anyway, ik ben wel bezig met een tutorial over Composer. Misschien een idee om dit in de gaten te houden ;-P
Gewijzigd op 14/09/2022 01:42:29 door - Ariën -
 
Daniel van Seggelen

Daniel van Seggelen

11/09/2022 17:17:00
Quote Anchor link
Ja heb ik gedaan. Ik zie het probleem al. Als ik alles in

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
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

//Load Composer's autoloader
require 'vendor/autoload.php';

//Create an instance; passing `true` enables exceptions
$mail = new PHPMailer();                              // Passing `true` enables exceptions
try {
    //Server settings
    $mail->SMTPDebug = 2;                                 // Enable verbose debug output
    $mail->isSMTP();                              
...etc


Dan doet hij het wel.

Maar ik gebruik vanaf $mail = new PHPMailer(); in een include, dat is dus het probleem.
Kan ik de mailclass dan niet in een include gebruiken? De oude class helemaal hierboven deed het wel zo
 
- Ariën  -
Beheerder

- Ariën -

11/09/2022 17:20:13
Quote Anchor link
Heb je de namespaces ook in die include staan?
 
Jan R

Jan R

11/09/2022 18:19:03
Quote Anchor link
the includes van PHPMailer zijn
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
require_once $_SERVER['DOCUMENT_ROOT'] . '/PHPMailer/src/Exception.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/PHPMailer/src/PHPMailer.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/PHPMailer/src/SMTP.php';


En het werkt perfect
 
- Ariën  -
Beheerder

- Ariën -

11/09/2022 18:26:04
Quote Anchor link
@Jan R. Die gebruik je als je geen autoloader gebruikt.
 
Daniel van Seggelen

Daniel van Seggelen

12/09/2022 04:48:27
Quote Anchor link
ja ik had de namespace ook in de include gedaan, zodat hij werkte.
Ik had zonder autoloader ook met reuire apart de bestanden gepaatst, maar leek niet te werken.

Dus de nametags moet ik in de include en daarbuiten in index.php bovenaan 2 keer definieren.
Lijkt me omslachtig, maar anders werkt de boel niet.
Gewijzigd op 12/09/2022 04:54:28 door Daniel van Seggelen
 
- Ariën  -
Beheerder

- Ariën -

12/09/2022 09:30:43
Quote Anchor link
Zo werken namespaces nu eenmaal.
Maar je kan ze ook in de class aanroep verwerken.
 



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.