0

我正在通过下面的 php 代码发送电子邮件,该代码将电子邮件模板发送到用户的电子邮件地址。但是,电子邮件发送时所有 HTML 标记仍然可见且无效。

$fh = fopen('templates/customer.eml','r');

        $emailContents = fread($fh, filesize('templates/customer.eml'));
        $emailContents = str_replace(":name:", $person->first . " " . $person->last, $emailContents);
        $emailContents = str_replace(":meeting_name:", $meeting->name, $emailContents);
        $emailContents = str_replace(":chair:", $chair->first . " " . $chair->last, $emailContents);

        fclose($fh);

        $header = "FROM: vra@vodafone.com\r\n";
        $header = "MIME-Version: 1.0\r\n";
        $header.="Content-type: text/html; charset: utf8\r\n";
        mail($person->email , "Meeting Request", $emailContents, "FROM: user@domain.com");

下面是我用于内容的电子邮件模板文件:

<html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    </head>
    <body>
        <p>
            Dear :name:,<br />
            You have been invited to <em>:meeting_name:</em> chaired by :chair:.
        </p>

        <p>
            Main text of the email will go here<sup>*</sup>.
        </p>
        <p>
            Thankfully
        </p>
        <p>
            User
        </p>
    </body>
</html>
4

1 回答 1

1

您没有将标头传递给邮件功能。尝试:

$header = "FROM: vra@vodafone.com\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .="Content-type: text/html; charset: utf8\r\n";
mail($person->email , "Meeting Request", $emailContents, $header);

试试这些标题

$header  = 'MIME-Version: 1.0' . "\r\n";
$header .= 'Content-type: text/html; charset=utf8' . "\r\n";
$header .= 'From: vra@vodafone.com' . "\r\n";
mail($person->email , "Meeting Request", $emailContents, $header);
于 2013-05-09T10:20:32.333 回答