Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP mailer没有';我不能用HTML格式工作_Php_Html_Email - Fatal编程技术网

PHP mailer没有';我不能用HTML格式工作

PHP mailer没有';我不能用HTML格式工作,php,html,email,Php,Html,Email,我使用的是一个非常标准的电子邮件创建功能,我以前也使用过,但由于某种原因,我不明白它不起作用。无论我在里面放了什么内容,它都会发送一封空白电子邮件 function sendToUser($email,$admin_email,$subject,$content){ $to=$email; $random_hash = md5(date('r', time())); $headers = "From: Site Name <$admin_email>";

我使用的是一个非常标准的电子邮件创建功能,我以前也使用过,但由于某种原因,我不明白它不起作用。无论我在里面放了什么内容,它都会发送一封空白电子邮件

function sendToUser($email,$admin_email,$subject,$content){
    $to=$email;

    $random_hash = md5(date('r', time())); 
    $headers = "From: Site Name <$admin_email>";
    $headers .= "\r\nReply-To: $admin_email";
    $headers .= "\r\nContent-Type: multipart/alternative; boundary=\"PHP-alt-".$random_hash."\""; 
    ob_start(); //Turn on output buffering
    ?>
    --PHP-alt-<?php echo $random_hash; ?> 
    Content-Type: text/plain; charset="utf-8"
    Content-Transfer-Encoding: 7bit

    <?php echo $content; ?>

    --PHP-alt-<?php echo $random_hash; ?>--
    <?
    //copy current buffer contents into $message variable and delete current output buffer
    $message = ob_get_clean();

    mail($to, $subject, $message, $headers);
}
它发送电子邮件,但到达时却是空的。有人看到这里出了什么问题吗?或者可能是我不熟悉的服务器设置?

--PHP alt-
--PHP alt-
内容类型:文本/纯文本;charset=“utf-8”
内容传输编码:7bit
--PHP alt---

如果在调用mail()函数之前将
var\u dump
转储,那么
$message
的内容是什么?
--PHP alt-@Matt没有,我刚才检查过。制作邮件头很痛苦。你为什么不使用PHPMailer?@robert根据你发布的代码,是的。我自己也有过同样的问题;这就是解决方案。我在上面发布的帮助中的
var\u dump($message)
的结果是否有任何帮助?@robert除非它被包装在
标记中,否则不会-web浏览器倾向于去除多个空白字符。顺便说一句,
var\u dump()
使您的输出之前似乎有空白。但我现在查看它,没有空白,是否存在不可见空白?我甚至尝试手动重新键入整个函数,但同样的问题仍然存在。如果不是空白,我将不得不再看一眼,但代码对我来说很好。
sendToUser("myprivatemail@yahoo.com","admin@site.com","Testing","E-mail content");
function sendToUser($email,$admin_email,$subject,$content){
    $to=$email;

    $random_hash = md5(date('r', time())); 
    $headers = "From: Site Name <$admin_email>";
    $headers .= "\r\nReply-To: $admin_email";
    $headers .= "\r\nContent-Type: multipart/alternative; boundary=\"PHP-alt-".$random_hash."\""; 
    ob_start(); //Turn on output buffering
    ?>
--PHP-alt-<?php echo $random_hash; ?> 
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit

<?php echo $content; ?>

--PHP-alt-<?php echo $random_hash; ?>--
    <?
    //copy current buffer contents into $message variable and delete current output buffer
    $message = ob_get_clean();

    mail($to, $subject, $message, $headers);
}