Ошибка в конфигурации почты в php - PullRequest
0 голосов
/ 08 мая 2018

Я разработал свой веб-сайт и разместил его на своем экземпляре amazon ec2, и я купил свой домен в godaddy (www.mydomain.com). Теперь я хочу настроить почту на странице формы для контактов на веб-сайте. Ниже ее кода я не знаю, где я ошибаюсь код?

  <?php 
        if(isset($_REQUEST['submit'])) {
            try {
                $name = $_POST['name'];

                echo "<script type='text/javascript'>alert('$name')</script>";

                $email = $_POST['email'];
                echo "<script type='text/javascript'>alert('$email')</script>";

                 $subject = $_POST['subject'];
                 echo "<script type='text/javascript'>alert('$subject')</script>";

                 $message = $_POST['message'];
                 echo "<script type='text/javascript'>alert('$message')</script>";

                 $response ="";
                 $body ="<div style='font-size:18px'>
                     <b>Name</b> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : $name  <br />
                     <b>Email address</b> &nbsp;&nbsp;&nbsp;&nbsp;: $email  <br />
                     <b>Message</b> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : $message <br />
                </div>"


                $to = "XXXXX@gmail.com";

                require_once($_SERVER['DOCUMENT_ROOT'].'/samplemail/lib/class.phpmailer.php');
                require_once($_SERVER['DOCUMENT_ROOT'].'/samplemail/lib/class.smtp.php');

                $mail = new PHPMailer(true);
                //$mail->Host = "relay-hosting.secureserver.net"; // your SMTP Server
                // echo $res;

                $mail->IsSMTP();

                $mail->Host      = "email-smtp.us-east-1.amazonaws.com";
                $mail->SMTPDebug = true;
                $mail->SMTPAuth  = true; // Auth Type
                $mail->Port      = 25;

                $mail->IsSendmail(); 
                //$mail->SMTPSecure = "ssl";

                $mail->Username = "support@mydomain.com";
                $mail->Password = "******";
                $mail->Sender   = "supportexample@mydomain.com";
                $mail->From     = "supportexample@mydomain.com";

                $mail->AddReplyTo($email);

                $mail->FromName = "Example";
                $mail->AddAddress($to);
                //$mail->AddAddress("desired recipient no.2 optional");
                $mail->IsHTML(true);

                $mail->Subject  = $subject;
                $mail->Body     = $body;
                $mail->WordWrap = 50;

               If($mail->Send()){

                echo "<script type='text/javascript'>alert('Mail Send Successfully')</script>";
}
            } catch (phpmailerException $e) {
                echo "<script type='text/javascript'>alert('Failed')</script>";
                echo $e->errorMessage();
            }
        }
    ?>

Я получил эту ошибку. Как решить эту проблему?

Не удалось выполнить: / var / qmail / bin / sendmail

1 Ответ

0 голосов
/ 08 мая 2018

Вы не можете вызывать случайные функции и ожидать, что все они будут работать магическим образом.

Вы настраиваете SMTP с isSMTP(), но затем игнорируете все это, вызывая isSendmail(), когда кажется, что ваш сервер просто не настроен для этого. Зачем это делать? Снова включите isSMTP и правильно настройте скрипт для почтового сервера.

Вы также запрашиваете аутентификацию при отключении шифрования; это может дать сбой на любом современном сервере.

Вы также используете старую версию PHPMailer, и вы основали свой код на устаревшем примере. Получите последнюю версию и основывайте свой код на приведенных примерах .

...