php 8.1 html email in raw formaat
Code (php)
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
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;
}
}
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)
1
2
3
4
5
6
7
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();
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?
Onderdeel van Zend Framework?
Heb je die al geupdated?
Ikzelf gebruik phpMailer.
Heb je die al geupdated?
Ikzelf gebruik phpMailer.
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
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
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 "PHPMailer" 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 />
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
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.
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 -
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 "PHPMailer" not found in
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 "PHPMailer" not found in
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
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 -
Ja heb ik gedaan. Ik zie het probleem al. Als ik alles in
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
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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
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
Heb je de namespaces ook in die include staan?
the includes van PHPMailer zijn
En het werkt perfect
Code (php)
1
2
3
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';
require_once $_SERVER['DOCUMENT_ROOT'] . '/PHPMailer/src/PHPMailer.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/PHPMailer/src/SMTP.php';
En het werkt perfect
@Jan R. Die gebruik je als je geen autoloader gebruikt.
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.
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
Zo werken namespaces nu eenmaal.
Maar je kan ze ook in de class aanroep verwerken.
Maar je kan ze ook in de class aanroep verwerken.




