HTML mailen met php lukt niet
Sinds mijn host de laatste php versie heeft geupdate lukt het mij niet meer om van de server een mail met HTML er in verwerkt, te versturen. Hij komt namelijk zo bij mij in het postvakje terecht (Gmail):
Voor de geinterreseerden dit is het script: Klik
Ook als ik het orginele bericht bekijk via Gmail ziet alles er normaal alleen verstuurt hij de headers letterlijk in plaats van ze als headers te versturen.
Wie o wie heeft dit probleem nog meer of wie kan mij helpen met dit probleem?
Met vriendelijke groet,
Rémy
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
MIME-Version: 1.0
Content-type: text/html; charset=iso-8859-1
X-Mailer: PHP/5.2.5
Message-Id: <[email protected]>
Date: Wed, 28 Nov 2007 23:55:54 +0100 (CET)
<html><head><title>Pipo</title></head><body>Test message</body></html>
Content-type: text/html; charset=iso-8859-1
X-Mailer: PHP/5.2.5
Message-Id: <[email protected]>
Date: Wed, 28 Nov 2007 23:55:54 +0100 (CET)
<html><head><title>Pipo</title></head><body>Test message</body></html>
Voor de geinterreseerden dit is het script: Klik
Ook als ik het orginele bericht bekijk via Gmail ziet alles er normaal alleen verstuurt hij de headers letterlijk in plaats van ze als headers te versturen.
Wie o wie heeft dit probleem nog meer of wie kan mij helpen met dit probleem?
Met vriendelijke groet,
Rémy
Gewijzigd op 01/01/1970 01:00:00 door Remy Brokke
php.net zet header regels tussen enkele quotes ipv dubbele..... geen idee of dat het verschil maakt...
http://nl3.php.net/manual/nl/function.mail.php
in mijn eigen scripts in het ook met dubbele...
http://nl3.php.net/manual/nl/function.mail.php
in mijn eigen scripts in het ook met dubbele...
Het komt waarschijnlijk doordat er geen newlines tussen je headers zitten. Jij gebruikt 'rn' waar je '\r\n' zou moeten gebruiken.
Tip: Gebruik een klasse als Swift Mailer om je mailtjes te versturen. Dan is het gerommel met headers om een HTML mailtje te versturen, direct verleden tijd.
ps. @Bart: de headers hoeven niet per se tussen dubbele quotes te staan. Het gaat enkel om de linebreaks (\r\n) die wel dubbele quotes nodig hebben om goed geinterpreteerd te worden.
Tip: Gebruik een klasse als Swift Mailer om je mailtjes te versturen. Dan is het gerommel met headers om een HTML mailtje te versturen, direct verleden tijd.
ps. @Bart: de headers hoeven niet per se tussen dubbele quotes te staan. Het gaat enkel om de linebreaks (\r\n) die wel dubbele quotes nodig hebben om goed geinterpreteerd te worden.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
Bedankt allebei. Helaas heeft plaatscode de backslashes verwijderd. Dit is namelijk het script wat draait op de server:
Ik heb de dubbele quote's van de header's nu omgezet in enkele quote's en ook dit werkt niet.
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?PHP
$aan = "[email protected]";
$onderwerp = "Testmail!";
$headers = "Return-Path: <[email protected]>\r\n";
$headers .= "From: Tester <[email protected]>\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "X-Mailer: PHP/".phpversion();
$body= "<html><head><title>Pipo</title></head><body>Test message</body></html>";
if(!mail($aan, $onderwerp, $body, $headers))
{
echo "Niet gelukt";
}
else
{
echo "Gelukt!";
}
?>
$aan = "[email protected]";
$onderwerp = "Testmail!";
$headers = "Return-Path: <[email protected]>\r\n";
$headers .= "From: Tester <[email protected]>\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "X-Mailer: PHP/".phpversion();
$body= "<html><head><title>Pipo</title></head><body>Test message</body></html>";
if(!mail($aan, $onderwerp, $body, $headers))
{
echo "Niet gelukt";
}
else
{
echo "Gelukt!";
}
?>
Ik heb de dubbele quote's van de header's nu omgezet in enkele quote's en ook dit werkt niet.
Gewijzigd op 01/01/1970 01:00:00 door Remy Brokke
Repeat:
Quote:
Tip: Gebruik een klasse als Swift Mailer om je mailtjes te versturen. Dan is het gerommel met headers om een HTML mailtje te versturen, direct verleden tijd.
Ik ben op dit moment inderdaad bezig met Swift Mailer. Het probleem is dat er een server of iets dergelijke ingevuld moet worden. Ik heb alleen geen kennis van Linux of zoiets dergelijke. Daarom weet ik niet wat ik bij deze regel moet invullen:
Die 25 zal de poort wel zijn (ik weet dat het een poort is maar wat een poort doet: geen idee). Hieronder de rest van het script:
Die 25 zal de poort wel zijn (ik weet dat het een poort is maar wat een poort doet: geen idee). Hieronder de rest van het script:
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
require_once "SwiftMailer/Swift.php";
require_once "SwiftMailer/Swift/Connection/SMTP.php";
$swift =& new Swift(new Swift_Connection_SMTP("server.tld", 25));
$message = "<html><head><title>PHP</title></head><body>Aight</body></html>";
$message =& new Swift_Message("Test mail!", $message, "text/html");
if ($swift->send($message, "[email protected]", "[email protected]"))
{
echo "Message sent";
}
else
{
echo "Message failed to send";
}
$swift->disconnect();
?>
require_once "SwiftMailer/Swift.php";
require_once "SwiftMailer/Swift/Connection/SMTP.php";
$swift =& new Swift(new Swift_Connection_SMTP("server.tld", 25));
$message = "<html><head><title>PHP</title></head><body>Aight</body></html>";
$message =& new Swift_Message("Test mail!", $message, "text/html");
if ($swift->send($message, "[email protected]", "[email protected]"))
{
echo "Message sent";
}
else
{
echo "Message failed to send";
}
$swift->disconnect();
?>
Jouw hostingprovider kan je deze informatie verstrekken, wellicht heeft hij je deze informatie in het verleden al toegestuurd.
Overigens kent Swift Mailer diverse mogelijkheden om een verbinding te maken, zie de handleiding.
Overigens kent Swift Mailer diverse mogelijkheden om een verbinding te maken, zie de handleiding.
Dank jullie wel allemaal! Het is gelukt. :)




