У меня возникают ошибки при попытке использовать PHPMailer - PullRequest
0 голосов
/ 05 апреля 2020

Я создаю веб-сайт как проект для колледжа и хочу добавить страницу контактов, конечно. На этой странице контактов я создал форму, в которой пользователь сайта может связаться со мной (администратором сайта) и отправить мне электронное письмо. Я покажу код, который я написал сразу.

Не могли бы вы также сказать мне, где именно я должен написать код? Может быть, это то, что я делаю неправильно. Итак, в первый раз я написал это в функции и вызвал эту функцию в контактной форме. Это не сработало. Затем я написал код для PHPMailer в отдельном файле php с именем send_mail. php и в форме контакта (это другой файл) я записал атрибут action = "send_mail. php" в теге формы. Это правильно? Пожалуйста, скажите мне, если я делаю это неправильно.

Кроме того, я хочу получать эти электронные письма на свой текущий аккаунт Gmail

Я не могу заставить его работать, и у меня возникают следующие ошибки:

Предупреждение: Создание объекта по умолчанию из пустого значения в D: \ Xampp \ htdocs \ licenta_ecomm \ public \ send_mail. php в строке 24

Неустранимая ошибка: необработанная ошибка: вызов неопределенного метода stdClass :: isSMTP () в D : \ Xampp \ htdocs \ licenta_ecomm \ public \ send_mail. php: 25 Трассировка стека: # 0 {main}, брошенный в D: \ Xampp \ htdocs \ licenta_ecomm \ public \ send_mail. php в строке 25

Теперь я новичок в этом, и я раньше не использовал PHPMailer, и я немного запутался. Это контактная форма (после кода phpmailer)

  <div class="container">
    <div class="row">
        <div class="col-lg-12 text-center">
            <h2 class="section-heading">Contacteaza-ne!</h2>
            <h3 class="section-subheading text-muted"><?php display_message(); ?></h3>

        </div>
    </div>
    <div class="row">
        <div class="col-lg-12">
            <form name="sentMessage" id="contactForm" action="send_mail.php" method="post" >
             <!--  EVENTUAL FUNCTIE??-->
                <div class="row">
                    <div class="col-md-6">
                        <div class="form-group">
                            <input type="text" name="nume_contact" class="form-control" placeholder="Numele *" id="name" required data-validation-required-message="Introduceți numele dvs.">
                            <p class="help-block text-danger"></p>
                        </div>
                        <div class="form-group">
                            <input type="email" name="email_contact" class="form-control" placeholder="Adresă e-mail *" id="email" required data-validation-required-message="Introduceți adresa e-mail">
                            <p class="help-block text-danger"></p>
                        </div>
                        <div class="form-group">
                            <input type="text" name="subiect" class="form-control" placeholder="Subiect *" id="phone" required data-validation-required-message="Introduceți subiectul">
                            <p class="help-block text-danger"></p>
                        </div>
                    </div>
                    <div class="col-md-6">
                        <div class="form-group">
                            <textarea name="mesaj" class="form-control" placeholder="Mesajul dvs. *" id="message" required data-validation-required-message="Introduceți mesajul dorit"></textarea>
                            <p class="help-block text-danger"></p>
                        </div>
                    </div>
                    <div class="clearfix"></div>
                    <div class="col-lg-12 text-center">
                        <div id="success"></div>
                        <button name="submit" type="submit" class="btn btn-xl">Trimiteți mesaj</button>
                    </div>
                </div>
            </form>
        </div>
    </div>
</div>

И это код, который я написал для отправки писем (send_mail. php)

<!DOCTYPE html>
<html>
<?php
    require_once("../resources/config.php"); 

    //clase PHPMailer importante din namespace-ul global
    use PHPMailer\PHPMailer\PHPMailer;
    use PHPMailer\PHPMailer\SMTP;
    use PHPMailer\PHPMailer\Exception;

    require 'D:\Xampp\composer\vendor\autoload.php';

    //variabilele din formularul de contact
    $nume_contact = escape_string($_POST['nume_contact']);
    $subiect = escape_string($_POST['subiect']);
    $email_from = escape_string($_POST['email_contact']);
    $mesaj = escape_string($_POST['mesaj']);

    try {

        //Server settings
        $mail->SMTPDebug = 1;                   // Enable verbose debug output
        $mail->isSMTP();                        // Send using SMTP
        $mail->Host       = 'smtp.gmail.com';   // Set the SMTP server to send through
        $mail->SMTPAuth   = true;               // Enable SMTP authentication
        $mail->Username   = 'myemailaddress@gmail.com';                     // SMTP username
        $mail->Password   = 'secret';           // SMTP password
        $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;         // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` encouraged
        $mail->Port       = 587;                // TCP port to connect to, use 465 for `PHPMailer::ENCRYPTION_SMTPS` above

        //sender
        $mail->setFrom('myemailaddress@gmail.com', 'H.P.');

        //recipient
        $mail->addAddress($email_from, $nume_contact);     // Add a recipient

        //body content
        $body = "<p>You received a message from: ".$nume_contact.". The message is: ".$mesaj."</p>";

        // Content
        $mail->isHTML(true);                                  // Set email format to HTML
        $mail->Subject = $subiect;
        $mail->Body    = $body;
        $mail->AltBody = strip_tags($body);

        $mail->send();
        echo 'Message has been sent';
    } catch (Exception $e) {
        echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
    }
?>
</html>
...