Я не могу отправить электронное письмо из формы на своем веб-сайте в свою учетную запись gmail с PHP Mailer - PullRequest
0 голосов
/ 23 января 2020

Как ссылка на предмет, я изо всех сил пытался создать систему, которую я мог бы получить по электронной почте из формы на веб-сайте. Я использую сервер HostGator. То, что я сделал ниже

  1. Создал форму на странице контактов, включил теги формы, имея метод = "POST" action = "send. php".
  2. Создан мой почтовый аккаунт на HostGator
  3. Я заполнил всю информацию о хосте при отправке. php, который показывает PHP формат Mailer basi c.

    4.После нажатия кнопки «отправить» появляется сообщение об ошибке: «Эта страница не работает. В настоящее время localhost не может обработать этот запрос. HTTP ERROR 500». Таким образом, я сейчас был в стеке.

Имя папки моего проекта "businessWeb". Каталог всех папок внутри него находится ниже

•businessweb/vender/composer/...
•businesswebvender/phpmailer/...

<?php
// Import PHPMailer classes into the global namespace
// These must be at the top of your script, not inside a function
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

//Load composer's autoloader
require './vendor/autoload.php';

// get variables from the form
$name = filter_var($_POST['name'],FILTER_SANITIZE_STRING);
$phone = filter_var($_POST['phone'],FILTER_SANITIZE_STRING);
$email = filter_var($_POST['email'],FILTER_SANITIZE_STRING);
$message = filter_var($_POST['message'],FILTER_SANITIZE_STRING);

$mail = new PHPMailer(true);                              // Passing `true` enables exceptions
try {
    //Server settings
    $mail->SMTPDebug = 0;                                 // Enable verbose debug output
    $mail->isSMTP();                                      // Set mailer to use SMTP
    $mail->Host ='the address in Incoming section on Cpanel in HostGator ';  // Specify main and backup SMTP servers
    $mail->SMTPAuth = true;                               // Enable SMTP authentication
    $mail->Username = 'email on hostGator';                 // SMTP username
    $mail->Password = '***';                           // SMTP password
    $mail->SMTPSecure = 'ssl';                            // Enable TLS encryption, `ssl` also accepted
    $mail->Port = 465;                                    // TCP port to connect to

    //Sender
    $mail->setFrom('email on HostGator', 'Joey Namiki');
    //Recipients
    $mail->addAddress('my gmail account', 'Joey');     
    //Body Content
    $body = "<p>Hello<br /><br /> You have received an enquiry from<br /> " . $name . "<br /><br /> The message is <br />" . $message . "<br /><br />You can contact on <br /> " . $phone . "</p>";

    //Content
    $mail->isHTML(true);                                  // Set email format to HTML
    $mail->Subject = 'JoeyNamiki Website Enquiry from '. $name;
    $mail->Body    = $body;
    $mail->AltBody = strip_tags($body);

    $mail->send();

    header('location: thankyou.php');

} catch (Exception $e) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
}
?>

1 Ответ

0 голосов
/ 23 января 2020
$mail->Username = 'email on hostGator';                 // SMTP username
$mail->Password = '***';  

Я надеюсь, что вы изменили имя пользователя и пароль для отображения в stackoverflow, а не в своем реальном коде.

Вы можете установить SMTPDebug на 1, чтобы посмотреть, что происходит при попытке отправить электронную почту.

Дополнительное использование простой почтовой функции на php для проверки textOnly mail.

И попробуйте комментировать некоторые дополнительные параметры в PHPMailer, чтобы увидеть, связана ли с ними проблема. Например, комментарий HTML и AltBody.

...