PHP Pear Mail不发送带有特殊字符的电子邮件


PHP Pear Mail not sending email with special characters

我有以下问题。我有一个在线申请表在HTML张贴到一个php文件。php文件应该通过电子邮件发送内容。它的工作完美,除了当客户端的名字张贴有特殊字符,如ü等。它不会在表单提交时给出任何错误,它只是不发送电子邮件。

这是我的代码:

  $host = "192.168.10.14";
$username = "exxxx@xxx.com";
$password = "xxxxx";
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'auth' => true,
'username' => $username,
'password' => $password));
$mail = new Mail_mime(array("text_charset" => "utf-8",
                            "html_charset" => "utf-8",
                            "eol" => "'n"));
    foreach ($headers as $name => $value){
    $headers[$name] = $mail->encodeHeader($name, $value, "utf-8",
                                                           "quoted-printable");
    }
// also encode to value
$to = $mail->encodeHeader("to", $to, "utf-8", "quoted-printable");
// fetch message
$msgDone = $mail->get();
// let Mail_Mime finish the headers (adds e.g. MIME info)
$headers_done = $mail->headers($headers);
// send the email
$smtp = Mail::factory('smtp',
array ('host' => $host,
'auth' => true,
'username' => $username,
'password' => $password));
$mail = $smtp->send($to, $headers, $body);

if (PEAR::isError($mail2)) {
echo("<p>" . $mail->getMessage() . "</p>");
} else {

header("Refresh: 0;url=OK.html");
  }

除非有特殊字符,否则效果很好。当有特殊字符时,它不发送任何警告。

谢谢

您是否尝试过在发送之前清理您的输入?

你会允许在SQL语句中输入撇号而不转义吗?还要检查服务器上的邮件日志——这应该能更好地提示潜在的问题。

谢谢,//P