PHP mail()'(单引号)在主题中被转义

时间:2018-10-09 12:10:44

标签: php html-email

我正在尝试使用php mail()函数发送电子邮件。我的代码如下。

$subject = "Let's Connect";
$to = $_POST['to'];
$message = $_POST['message'];

mail( $to, $subject, $message, array('Content-Type: text/html; charset=UTF-8'));  

问题是,在电子邮件客户端(例如Gmail和Yahoo)中,主题行中的'变成了\'Let's Connect变为Let\'s Connect。我在这里尝试了几种解决方案,例如

$sub = '=?UTF-8?B?'.base64_encode($subject).'?=';
$decoded_str = html_entity_decode ( $value_to_decode, ENT_QUOTES, 'UTF-8' );

它们似乎都不起作用。我应该怎么做才能解决它?

Thaks

2 个答案:

答案 0 :(得分:2)

我会使用stripslashes()html_entity_decode()

mail( $to, stripslashes(html_entity_decode($subject, ENT_QUOTES, 'UTF-8' )), $message, array('Content-Type: text/html; charset=UTF-8')); 

答案 1 :(得分:1)

可以使用双引号:

OuterError

或者您可以使用斜杠将其跳过

$subject = "Let's Connect";

您可以通过$subject = 'Let\'s Connect';