2010-07-08 3 views
0

У меня есть файл php, который я пытаюсь отправить вывод по электронной почте с помощью функции php mail (PHPMailer не является параметром, так как работающий сервер ограничивает их SMTP-сервер). Код для функции почты являетсяPHP-буферизация вывода не работает

$to = "[email protected]"; 
$subject = "Outdoor Grill Service Request"; 
ob_start(); 
require 'grill-form.php'; 
$body = ob_get_clean(); 
$headers = "MIME-Version: 1.0" . "\r\n"; 
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n"; 
$headers = "From: [email protected]\n"; 
mail($to,$subject,$body,$headers); 
echo "Mail sent to $to"; 

гриль-form.php является PHP-файл, который содержит HTML файл, содержащий таблицы, которые заполняются с переменной PHP из формы. Это отлично работало с использованием PHPMailer, но как только я перешел на стандартную php-почту, вы получили «винную».

Проблема, с которой я сталкиваюсь, когда отправляется электронное письмо, я получаю необработанный код HTML, а не выход grill-form.php (стилизованная таблица со значениями). У меня мало знаний с функцией php mail, поэтому я мог бы упустить что-то глупое.

Было интересно, что я делаю неправильно. Заранее благодарю за то, что вы помогаете вам, люди самые лучшие.

+0

Вопрос с чистой стороны - я думал, что PHPMailer можно использовать для отправки через SMTP-соединение. Как я уже сказал, это просто заинтриговало условия, из-за которых вы отказались от использования этого пакета. –

ответ

1

Предполагая, что это ваш фактический код, вы переписываете переменную $headers с третьим объявлением, не добавляя к тому, что у вас есть. Заголовок Content-type никогда не делает его.

PHPMailer поддерживает SMTP, кстати, что именно вы подразумеваете под «ограничивает их SMTP-сервер»? (Вот пример: http://phpmailer.worxware.com/index.php?pg=examplebsmtp)

+0

Этот недостающий период был именно моей проблемой. Не могу поверить, что я пропустил это. Спасибо. Что касается SMTP-сервера, я не могу это объяснить. Я написал исходную функцию с помощью PHPMailer, и она отлично работала на моей машине (Apache). Я смог отправлять SMTP-сообщения через мою учетную запись comcast, hotmail и gmail. Однако, как только я положил его на свой сервер (Linux), я продолжал получать ошибку SMTP 111 «Отклонение соединения». Я пробовал каждый порт, который мог найти, затем я попытался снова использовать мою учетную запись gmail и такую ​​же ошибку 111. После разговора с технической поддержкой они сказали, что это скорее всего их сервер и некоторые проблемы с брандмауэром. – Chris

Смежные вопросы