2012-02-04 2 views
0

Как сообщил я попытался с помощью PHP Mailer для отправки вложения электронной почты с формой, но я получаю сообщение об ошибке «Mailer Error:. Не удалось создать экземпляр функции электронной почтыошибка почты с PHP Mailer

Я перепроверил по электронной почте адрес и не можете найти какую-либо ошибку на одном

вот код PHP, а также код для формы Любой вход очень ценится Спасибо, JB

<html> 
<head> 
<title>PHPMailer - Mail() basic test</title> 
</head> 
<body> 

<?php 

require_once('class.phpmailer.php'); 

$mail    = new PHPMailer(); // defaults to using php "mail()" 

$body    = file_get_contents('talent3.html'); 
$body    = eregi_replace("[\]",'',$body); 

$mail->AddReplyTo("[email protected]","First Last"); 

$mail->SetFrom('[email protected]', 'First Last'); 

$mail->AddReplyTo("[email protected]","First Last"); 

$address = "[email protected]"; 
$mail->AddAddress($address, "John Beadle"); 

$mail->Subject = "PHPMailer Test Subject via mail(), basic"; 

$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; //  optional, comment out and test 

$mail->MsgHTML($body); 

$mail->AddAttachment("images/phpmailer.pdf");  // attachment 
$mail->AddAttachment("images/phpmailer_mini.jpeg"); // attachment 

if(!$mail->Send()) { 
echo "Mailer Error: " . $mail->ErrorInfo; 
} else { 
echo "Message sent!"; 
} 

?> 

</body> 
</html> 

и код формы:..

<form action="test_mail_basic.php" method="post" 
enctype="multipart/form-data"> 
<label for="file" class="bodyCopy"><span class="bodyCopy">Attach resume:</span></label><br  /> 
<input type="file" name="attach1" id="file" /><br /> 
<br /> 
<label for="file" class="bodyCopy"><span class="bodyCopy">Attach photo:</span></label><br /> 
<input type="file" name="attach2" id="file" /><br /> 
<br /> 
<input type="submit" name="submit" value="Submit" /> 
</form> 

ответ

1

Эта ошибка является результатом функции php mail(), возвращающей false.

Как правило, он возвращает false, если sendmail не настроен правильно в php.ini или если sendmail не существует на сервере.

Вы используете это на сервере Linux или Windows? Очень простой тест, чтобы увидеть, если почта работает, чтобы запустить этот код:

<?php 
$to = '[email protected]'; 

$res = mail($to, 'Testing mail', "This is a test\n\nEnd.", "From: $to"); 

if ($res) { 
    echo "Message appears to have been accepted"; // does not mean it will be delivered 
} else { 
    echo "PHP mail() failed."; 
} 

Если вы на Windows, вам, вероятно, потребуется использовать SMTP-сервер вместо PHP почты(), так что вам нужно будет использовать SMTP, как видно из этого phpmailer SMTP example.

Если вы используете общий хостинг, возможно, сообщение отклоняется из-за того, что некоторые дополнительные параметры отправляются почтовой функции.

+0

Я нахожусь в Linux (я думаю) Как мне запустить код? –

+0

вы создаете файл с этим кодом внутри и просто запускаете его на локальном хосте. Вам нужно иметь apache, php и postfix/exim для того, чтобы он работал – Alex

+0

Сохранить код как .php-файл или .html-файл? Кроме того, как мне это запустить - я до сих пор не понимаю эту часть. Запустив, вы хотите загрузить на сервер, а затем открыть его в браузере? –

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