PHP отправить письмо из HTML-сообщения - PullRequest
1 голос
/ 25 ноября 2011

Я создал простой скрипт электронной почты 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 ]

6 голосов
/ 25 ноября 2011

file_get_contents() читает содержимое файла в строку. Так что вы можете сделать что-то вроде этого:

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

См. http://php.net/manual/en/function.file-get-contents.php для получения дополнительной информации.

Особенно, если содержимое файла может быть сгенерировано пользователем, это дает преимущество в том, что нет никаких шансов, что какая-то часть файла будет проанализирована как PHP и выполнена на вашем сервере. (При доставке HTML конечным пользователям, когда вы не являетесь источником контента, по-прежнему есть все важные проблемы с безопасностью.)

1 голос
/ 25 ноября 2011

Вы можете создать файл body.php, и он будет содержать что-то вроде этого:

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

И включить это.

1 голос
/ 25 ноября 2011

Вам следует создать файл 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() вызова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...