2011-11-24 140 views
1

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

这是我的脚本小版

<?php 
    $to .= '[email protected]'; 
    $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 <[email protected]>' . "\r\n"; 
    mail($to, $subject, $message, $headers); 
?> 

回答

6

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

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

更多信息请参见http://php.net/manual/en/function.file-get-contents.php。特别是,如果可能的用户生成的文件的内容

,这有那里是没有机会,文件的任何部分会被解析为PHP和你的服务器上执行的优势。 (还有所有重要的安全问题提供HTML给最终用户担心的时候你是不是该内容的来源。)

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()以上的某处。

+0

谢谢,但要使用到特洛特的方法。 Urs也应该工作:) – Cody

1

可以使文件body.php并将它包含这样的事情:

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

,并包括。

+0

谢谢,但我会用Trott的方法:) – Cody