$TemplateFileContent = htmlspecialchars(fread($TemplateFileHandle,filesize($TemplateFilename)));
你看看这样行不行

解决方案 »

  1.   

    $TemplateFilename = "Templates/email/new.txt";
    include $TemplateFilename;
      

  2.   

    问题出在你的这个变量,
    $TemplateFileContent
    你可以看显示一下这个是什么内容,然后进行相应的处理(比如说有双引号,就替代成\").
      

  3.   

    既然第一个是从文件中读取与第二个相同的内容,那么问题就该出在文件路径上。检查一下你的脚本执行路径和txt文本文件的相对位置,有可能找不到。
    $TemplateFilename = "Templates/email/new.txt";
    $TemplateFileHandle = fopen($TemplateFilename,"r");
    if(! $TemplateFileHandle){
      die('not found the file');
    }
    $TemplateFileContent = fread($TemplateFileHandle,filesize($TemplateFilename));
    fclose($TemplateFileHandle);
      

  4.   

    现在问题是用1不用2,而echo $TemplateFileContent."<br>";也可以输出正确的内容.
      

  5.   

    当$emailaddr是个有效的E-mail地址时没有问题.
    在51的空间测试通过.可以收到信.
      

  6.   

    以下代码测试通过
    <?php
    $emailaddr = "***@***.***";//改为有效邮件地址
    $TemplateFilename = "Templates/email/new.txt";
    $TemplateFileHandle = fopen($TemplateFilename,"r");
    $TemplateFileContent = fread($TemplateFileHandle,filesize($TemplateFilename));
    fclose($TemplateFileHandle);//$TemplateFileContent  = "Dear User....................";echo $TemplateFileContent."<br/>";
    $bSendRet = mail($emailaddr, "the subject",$TemplateFileContent,"From: [email protected]","");
    if($bSendRet )
    echo "Ok"."<br/>";
    else
    echo "Error"."<br/>";?>