PHP从html消息发送电子邮件

时间:2011-11-24 23:21:44

标签: php html email

我创建了一个简单的php电子邮件脚本,但问题是我不想在同一个php文件中包含大的消息文本。我希望脚本从单独的html文件中读取消息(与html代码完全一样)。我试图用include("body.html");替换消息,但不幸的是打印出html代码而不是发送它。

这是我的脚本的小版本

<?php
    $to .= 'email@example.com';
    $subject = 'Message Subject';
    $message = 'This is a very important message?';
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    $headers .= 'From: Person Name <pname@example.com>' . "\r\n";
    mail($to, $subject, $message, $headers);
?>

3 个答案:

答案 0 :(得分:6)

file_get_contents()将文件内容读入字符串。所以你可以这样做:

$message = file_get_contents('./message_file.html');

有关详细信息,请参阅http://php.net/manual/en/function.file-get-contents.php

特别是如果文件的内容可能是用户生成的,那么这样做的好处是不会将文件的任何部分解析为PHP并在服务器上执行。 (当您不是内容的来源时,在向最终用户提供HTML时,仍然需要担心所有重要的安全问题。)

答案 1 :(得分:1)

您应该创建一个body.php文件,其中包含存储在变量中的消息内容,例如:

$message = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed nec dui vitae augue elementum facilisis sit amet in est. Vestibulum lacinia, magna a dictum pretium, mi enim pharetra ligula, at aliquet arcu leo quis libero. Ut ornare dapibus pulvinar. Cras vel nisl nibh. Quisque semper porta augue, in adipiscing elit ultricies eu. Mauris laoreet leo ut justo luctus ut ullamcorper urna feugiat. Vestibulum a massa mauris, sit amet aliquam lorem. Nullam malesuada, neque vel imperdiet aliquet, nisl neque luctus tortor, sed dapibus tellus elit non est. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris vulputate convallis lorem et scelerisque.";

然后include("body.php");mail()来电之上的某个地方。

答案 2 :(得分:1)

您可以创建一个文件body.php,并使其包含以下内容:

$message = 'formatted, escaped and ready message goes here';

包括那个。