2013-10-09 3 views
0

im a php beginner, и я создаю веб-сайт, и сайт должен позволить людям отправлять мне электронную почту. Дело в том, что я никогда ничего не знал о отправке писем через php. Я посмотрел его онлайн и попытался использовать коды, которые я нашел. Дело в том, что моя программа говорит, что она отправила электронное письмо, но я никогда не получаю электронную почту. Я подумал, может быть, это потому, что я использую сервер apache для тестирования своего php, и, возможно, он работает, когда я загружаю его на реальный сервер (да, это был вопрос)Отправка электронной почты с помощью ошибки PHP

На всякий случай это мой код, и это все php-код на моем сайте, также хорошо работает, нет ничего плохого в этом.

<?php 
if (isset($_POST['name'])) { 
$email = $_POST['email']; 
$subject = $_POST['subject']; 
$message = "From: " . $_POST['name'] . ", " . $_POST['email'] . "\n Message: " . $_POST['message']; 
try { 
    mail("[email protected]", $subject, $message, " "); 
    unset($_POST['name']); 
    header("Location: success.php"); 

} 
catch (PDOException $e) 
{ 

    include 'index.html'; 
    exit(); 
} 
exit(); 

} 
include 'contact2.php'; 

?> 

есть проблемы с кодом? или мне нужно называть что-то из библиотеки или что-то еще, или мне не хватает кода! ПОМОГИТЕ МНЕ СДЕЛАТЬ ЭТУ РАБОТУ! когда я его выполняю, он принимает меня к успеху.php, поэтому я не предполагал, что с моим кодом ничего не получается, но вы, ребята, знаете лучше!

+1

См http://stackoverflow.com/questions/3266204/php-mail-function-does-not-work-on-web-host –

+4

Что там делает «PDOException»? – geomagas

+0

'mail()' не генерирует исключений. Он просто возвращает логический FALSE при ошибке. PHP может поддерживать объекты, но сам по себе он не является ООП. Никакая основная функция PHP не будет генерировать исключение, но многие из дополнительных библиотек, например, PDO или mysqli. –

ответ

1

Возможно, это не сработает после загрузки на реальный сервер, если конфигурация почты сервера еще не установлена. Поэтому я предлагаю вам использовать более и более простой вариант, чтобы отправить почту через PHP: PHPMailer

require_once("class.phpmailer.php"); 
$mail = new PHPMailer(); 

$mail->AddAddress("[email protected]","Display name"); 
$mail->Subject= "Mail subject"; 
$mail->Body= "Mail content"; 

$mail->IsSMTP(); 
$mail->Host = "mail.domain.com"; 
$mail->SMTPAuth = true; 
$mail->Username = "[email protected]"; 
$mail->Password = "123456"; 
$mail->IsHTML(true); //true if you want to send html content. false for plain text message 
$mail->From = $_POST['Email']; 
$mail->FromName = $_POST['Name']; 
$mail->Send(); 

Вы можете загрузить класс clicking here

+0

спасибо человеку, плохо попробуйте этот. Это единственный ответ, который дает мне решение. – user2864414

+0

также будет работать на сервере Apache? – user2864414

+0

Он будет работать с Apache, если вы настроили * почтовый агент передачи *, что выходит за рамки этого вопроса. – acobster

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