“发送电子邮件时遇到的问题[sendmail + PHP + Symfony]

时间:2016-06-06 12:32:09

标签: php html symfony email sendmail

我用 PHP和Symfony 2 开发了一个几乎完美的API,它在我的邮件服务器的帮助下发送电子邮件: sendmail 。我的问题是,我可以使用简单的文本和简单的HTML发送电子邮件,但是当我有类似的内容时:<h1 style="color:red;">HI</h1>  在身体我没有收到邮件。 当我有符号时,我已经解决了这个问题。但是这会让我产生另一个问题,并且收到的HTML代码很糟糕。我在互联网上搜索但是我找不到有同样问题的人。 这是我的代码:

    public function api_send_email($from,$to,$token,$subject,$content, $from_email_id, $to_email_id)
{
    $list_unsubscribe = $this->container->get('router')->generate('api_mod_com_unsubscribeOne', array(
        'fsUserId' => $from_email_id,
        'toEmail' => $to_email_id
    ));

    $from = $from." <info@fidelsys.eu>";
    $headers = "From: ".$from."\r\n";
    $headers .= "To: ".$to."\r\n";
    $headers .= "Subject: ".$subject."\r\n";
    $headers .= 'Content-Type: text/html;charset=utf-8'."\r\n";
    $headers .= 'MIME-Version: 1.0'."\r\n";
    $headers .= "List-unsubscribe: ".$list_unsubscribe."\r\n";
    $headers .= "X-Mailer: PHP/" . PHP_VERSION;
    $headers .= "\r\n";
    $headers .= $content."\r\n";

    // debugg
    mail("dev2.fidelsys@mail.ru","tests", $headers );

    $cmd = 'echo "'.$headers.'" | sendmail -t -N \'success,failure\' -V '.$token;
    shell_exec ( $cmd );

我已经解决了问题:

$content = addslashes($content);

但我收到的链接断开的电子邮件以及代码如下所示:

<td align=\"left\" valign=\"top\" style=\"color:#606060;font-family:Helvetica,Arial,sans-serif;font-size:15px;line-height:150%;padding-top:10px;padding-right:40px;padding-bottom:40px;padding-left:40px;text-align:left\">

使用addslashes函数是正常的。 PS:我在服务器或symfony日志中没有任何错误。如果我删除了addslashes函数,我的邮件会消失。

0 个答案:

没有答案