【发布时间】:2013-11-07 14:46:40
【问题描述】:
大家好,
我正在尝试使用默认的 PHP 邮件功能通过 PHP 发送几封电子邮件(我知道有库,但这是一个我只会运行 1 次的脚本...)
这是我正在使用的代码($leMSG 和电子邮件发送部分在 foreach 循环中):
$leMSG = '<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Uw nieuwe aanmeld gegevens voor website.nl</tilte></head><body><p>Beste klant van website.nl,</p><p>website.nl is overgegaan naar een nieuw systeem en uw account is mee verhuisd. Helaas konden we niet uw oude wachtwoord gebruiken, aangezien die beveiligd was opgeslagen. Daarom waren wij genoodzaakt om uw wachtwoord te resetten.</p><p>Uw nieuwe gegevens zijn:<br />Email: ' . $leEmail . '<br />Wachtwoord: ' . $password . '</p><p>U kunt uw gegevens <a href="http://wwww,website.nl/index.php?route=account/account"> hier </a> na lopen en desnoods veranderen.</p><p>Mochten er nog vragen / opmerkingen zijn, dan horen wij dat graag.</p><p>Met Vriendelijke Groet,<br />Webbeheer website.nl</p></body></html>';
$this -> mailer($leMSG, $item['email'], $item['customer_id']);
还有邮件功能:
function mailer($msg, $to, $id){
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Additional headers
$headers .= 'To: email@addres.nl\r\n';
$headers .= 'From: Webmaster website.nl <webmaster@website.nl> \r\n';
if(mail('email@addres.nl', 'Uw nieuwe aanmeld gegevens voor website.nl', $msg, $headers)){
return TRUE;
}
else{
echo "<br />ERROR @id_" . $id;
}
}
但是电子邮件是空的。当我查看源代码(使用 GMail)时,我可以看到有一些 HTML:
From: webmaster@website.nl
To:
Date: Thu, 7 Nov 2013 15:43:29 +0100
Subject: Uw nieuwe aanmeld gegevens voor website.nl
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Uw nieuwe aanmeld gegevens voor website.nl</tilte></head><body><p>Beste klant van website.nl,</p><p>website.nl is overgegaan naar een nieuw systeem en uw account is mee verhuisd. Helaas konden we niet uw oude wachtwoord gebruiken, aangezien die beveiligd was opgeslagen. Daarom waren wij genoodzaakt om uw wachtwoord te resetten.</p><p>Uw nieuwe gegevens zijn:<br />Email: email@addres.nl<br />Wachtwoord: 55jws2tS0j</p><p>U kunt uw gegevens <a href="http://wwww,website.nl/index.php?route=account/account"> hier </a> na lopen en desnoods veranderen.</p><p>Mochten er nog vragen / opmerkingen zijn, dan horen wij dat graag.</p><p>Met Vriendelijke Groet,<br />Webbeheer website.nl</p></body></html>
有人知道这个脚本有什么问题吗?我没有收到任何错误或类似的错误...
编辑,现在使用更多的换行符来提高代码的可读性,但这并没有解决问题
$leMSG = '<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Uw nieuwe aanmeld gegevens voor Kadobos.nl</tilte></head>' . PHP_EOL;
$leMSG .= '<body><p>Beste klant van website.nl,</p>' . PHP_EOL;
$leMSG .= '<p>website.nl is overgegaan naar een nieuw systeem en uw account is mee verhuisd. Helaas konden we niet uw oude wachtwoord gebruiken, aangezien die beveiligd was opgeslagen. Daarom waren wij genoodzaakt om uw wachtwoord te resetten.</p>' . PHP_EOL;
$leMSG .= '<p>Uw nieuwe gegevens zijn:<br />Email: ' . $leEmail . '<br />Wachtwoord: ' . $password . '</p>' . PHP_EOL;
$leMSG .= '<p>U kunt uw gegevens <a href="http://wwww.website.nl/index.php?route=account/account"> hier </a> na lopen en desnoods veranderen.</p>' . PHP_EOL;
$leMSG .= '<p>Mochten er nog vragen / opmerkingen zijn, dan horen wij dat graag.</p>' . PHP_EOL;
$leMSG .= '<p>Met Vriendelijke Groet,<br />Webbeheer website.nl</p></body></html>' . PHP_EOL;
【问题讨论】:
-
专业提示:在 HTML 字符串中使用换行符以使其更易于阅读。
-
一件事 - 您在
$headers中明确设置了To:标头,您不需要这样做;这由对mail()的调用中的第一个参数处理。尝试删除该行。 -
不要使用
mail()发送html 邮件。mail()是无用的垃圾。使用合适的邮件包,如 PHPMailer 或 Swiftmailer。 -
@MadaraUchiha,用更新的代码更新了我的问题。感谢您的提示,但它没有解决它;)
-
@andrewsi,感谢您的提示,但这并没有解决问题:S