Неустранимая ошибка в PHPMailer

Новичок здесь.

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

Я работаю над проектом PHP. Как это работает, пользователь переходит на страницу, пишет комментарии или проблемы в форме (например, в текстовом редакторе) и нажимает кнопку «Отправить». Я должен быть в состоянии получить его сообщение на мою электронную почту. Я установил здесь свою учетную запись Gmail для тестирования, но позже это будет моя реальная электронная почта с моим собственным доменом.

Вот ошибка, которую я получаю при запуске на локальном хосте:

Неустранимая ошибка: необработанное исключение «phpmailerException» с сообщением «Не удалось выполнить: / usr / sbin / sendmail» в C: \ xampp \ htdocs \ pp \ classes \ class.phpmailer.php: 1100 Трассировка стека: # 0 C: \ xampp \ htdocs \ pp \ classes \ class.phpmailer.php (1026): PHPMailer-> sendmailSend (‘Дата: чт, 9 октября …’, ‘—b1_9ea0b33e3f …’) # 1 C: \ xampp \ htdocs \ pp \ classes \ class.phpmailer.php (935): PHPMailer-> postSend () # 2

Вот код, который я использую:

<?php
require_once("../../classes/class.phpmailer.php");

if($_POST['mode']=='send'){

$mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch

$mail->IsSendmail(); // telling the class to use SendMail transport

//I assume this part is to make it run on linux base on Google search
$body = "New Bug Report from ".$_SESSION['name']."\n".$_POST['bug'];
$mail->AddReplyTo('mj@gmail.com', 'MJ Team');
$mail->AddAddress(''.$_SESSION['email'].'', ''.$_SESSION['name'].'');
$mail->SetFrom(mj@gmail.com', 'MJ Team');
$mail->AddReplyTo('mj@gmail.com', 'MJ Team');
$mail->Subject = 'New bug report for the portal';
$mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically
$mail->MsgHTML($body);
$mail->Send();

//And I assume this part of the code makes it run on windows based on Google search
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->Host = "smtp.postmarkapp.com";
$mail->Port = 26;
$mail->Username = "MJ";
$mail->Password = "MJ";
$mail->SetFrom('mj@gmail.com', 'mj');
$mail->Subject = "An email for test";
$mail->AddAddress($address, $name);

if($mail){
$message = 'Thanks. Bug report successfully sent. We will get in touch if we have any more questions.';
}
else {
echo "Mailer Error: " . $mail->ErrorInfo;
}
}
?>

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

Спасибо!

0

Решение

Попробуй это :

<?php
session_start();

if(isset($_POST['mode']) && $_POST['mode']=='send' &&
isset($_SESSION['email'], $_SESSION['name'])){

require_once("PHPMailerAutoload.php");
$mail = new PHPMailer(true);

//Send mail using gmail
$mail->IsSMTP(); // telling the class to use SMTP
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->SMTPSecure = "ssl"; // sets the prefix to the servier
$mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
$mail->Port = 465; // set the SMTP port for the GMAIL server
$mail->Username = "mj@gmail.com"; // GMAIL username
$mail->Password = "mypassword"; // GMAIL password

//Typical mail data
$mail->AddAddress($_SESSION['email'], $_SESSION['name']);
$mail->SetFrom('mj@gmail.com', 'mj');
$mail->Subject = "This is a test message";
$mail->Body = "An email for test";

try{
$mail->Send();
echo "Thanks. Bug report successfully sent.
We will get in touch if we have any more questions!";
} catch(Exception $e){
//Something went bad
echo "Mailer Error: - " . $mail->ErrorInfo;
}
}else{
echo 'missing required values!';
}
0

Другие решения

Если все, что вы хотите сделать, это отправить электронное письмо, почему бы не использовать команду PHP Mail (http://php.net/manual/en/function.mail.php)

замените свой код этим:

$to      = 'mj@gmail.com';
$subject = 'the subject';
$message = 'New bug report for the portal';
$headers = 'From: mj@gmail.com' . "\r\n" .
'Reply-To: mj@gmail.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
-1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector