PHP html-Mail空电子邮件

时间:2013-11-07 14:46:40

标签: php email

Hy guys,

我正在尝试使用默认的PHP Mail函数通过PHP发送几封电子邮件(我知道有库,但这是一个我只运行一次的脚本...)

以下是我正在使用的代码($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;

2 个答案:

答案 0 :(得分:2)

</tilte>拼写错误。 应为</title>

答案 1 :(得分:1)

不清楚。通过正确设置回车来查看HTML:

<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>

我想知道这一行:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

我的直觉说应该关闭它应该是这样;请注意该行末尾的/

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

编辑:查看您的核心代码,这似乎是另一个问题:

$headers .= 'To: email@addres.nl\r\n';
$headers .= 'From: Webmaster website.nl <webmaster@website.nl> \r\n';

或许可以这样试试。

$headers .= "To: " . 'email@addres.nl' . "\r\n";
$headers .= 'From: " . 'Webmaster website.nl <webmaster@website.nl>' . "\r\n";

单引号与双引号问题可能会在邮件正文中添加更多行。因此,当您尝试处理邮件的HTML部分时,您的邮件程序会阻塞。这意味着它似乎是标题之间的一个行间距。身体引起问题。看起来像这样;查看Subject:与消息正文之间的区域:

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>

应该像这样呈现:

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>