Недавно я перешел из общего хостинга Windows в VPS. Я пытаюсь заставить phpmailer работать на контактную форму на моем веб-сайте.Настройка phpmailer на iis7
Код для моего сайта наборы вверх по электронной почте, чтобы отправить это:
$mail->IsSMTP(); // set mailer to use SMTP
$mail->Host = "smtp.gmail.com"; // specify main and backup server or localhost
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->SMTPSecure = "tls";
$mail->SMTPDebug = 1; // can vary the amount of debug info given on error
$mail->Username = "[email protected]"; // SMTP username
$mail->Password = "########"; // SMTP password
$mail->Port = 587;
Этот код работал на старых окнах общих хостинг. Также все остальное идентично и сайту (файл class.phpmailer.php и т. Д.)
Итак, я предполагаю, что это связано с моей настройкой iis или самого сервера.
Подключение работ на порт 587 по моим хостингов которые проверяли, что для меня
Я установил PHP с помощью инструмента Microsoft, который делает все для вас. сайт находится в php и работает, и он смотрит на мой неподготовленный глаз, как будто все в порядке.
Я проверил, что php_openssl.dll включен.
Я долгое время читал и возился без везения. Я действительно в недоумении, как смотреть дальше. Любые идеи, что это может быть или что я должен попробовать?
спасибо!
Фил.
EDIT:
Действие на форме PHP, чтобы перейти к contactprocessor.php.
Этот файл содержит этот код:
<?
ob_start();
if(isset($_POST['btnSubmit']))
{
require("class.phpmailer.php");
$mail = new PHPMailer();
//Your SMTP servers details
$mail->IsSMTP(); // set mailer to use SMTP
$mail->Host = "smtp.gmail.com"; // specify main and backup server or localhost
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->SMTPSecure = "tls";
$mail->SMTPDebug = 1; // can vary the amount of debug info given on error
$mail->Username = "[email protected]"; // SMTP username
$mail->Password = "########"; // SMTP password
$mail->Port = 587;
$redirect_url = "http://www.mydomain.com/contact/contact_success.php"; //Redirect URL after submit the form
$mail->From = $mail->Username; //Default From email same as smtp user
$mail->FromName = "Website Contact Form";
$mail->AddAddress("[email protected]", "From Contact Form"); //Email address where you wish to receive/collect those emails.
$mail->WordWrap = 50; // set word wrap to 50 characters
$mail->IsHTML(true); // set email format to HTML
$mail->Subject = "From Contact Form";
$message = "FullName: ".htmlspecialchars($_POST['fullname'])." <br> <br>
\r\n <br>EmailAddress: ".htmlspecialchars($_POST['email'])." <br> <br>
\r\n <br>Phone Number: ".htmlspecialchars($_POST['mobile'])." <br> <br>
\r\n <br> Message: <br>".htmlspecialchars($_POST['message']);
$mail->Body = $message;
if(!$mail->Send())
{
echo "Sorry the message could not be sent. Please email [email protected] instead. Thanks<p>";
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
}
echo "Message has been sent";
header("Location: $redirect_url");
}
?>
Вместо того, чтобы фактически посылать электронную почту, это только кажется, печать выше на экран пользователя, как если бы это веб-страницы. это похоже на то, что сервер считает, что это html-страница, и просто обслуживает ее.
любые сообщения об ошибках/отладки от phpmailer? можете ли вы опубликовать вывод SMTPDebug? или это ошибка перед этим? – x4rf41
спасибо, что вернулись ко мне так быстро. Я отредактировал выше, чтобы дать больше информации. Я не получаю никаких сообщений об ошибках, просто php выполняется, как если бы это была страница html. благодаря! –
Мое предположение заключается в том, что его тег '' - большинство новых установок PHP по умолчанию не допускают этот тег короткой формы. Попробуйте изменить все теги '', Которые у вас есть для long-form ' Php'. – Spudley