Я просматривал тонны вещей в Интернете, но все еще не могу получить кнопку «Отправить», чтобы отправить электронное письмо с помощью PHPMailer и Sendgrid.Вот мой код:
HTML
<form id="contact-form" action="scripts/mailer.php" method="post">
<fieldset form="#contact-form">
<legend>Contact Form</legend>
<label class="input-field-name">Name:<br />
<input class="input-field" type="text" name="name" required/>
</label><br />
<label class="input-field-name">Email:<br />
<input class="input-field" type="text" name="email" required/>
</label><br />
<label class="input-field-name">Message Title:<br />
<input class="input-field" type="text" name="header" required/>
</label><br />
<label class="input-field-name">Message:<br />
<textarea class="message-field" type="text" name="message" required></textarea>
</label><br />
<button id="submit-button" type="submit">Submit</button>
</fieldset>
</form>
PHP
<?php
$name = $_POST["name"];
$email = $_POST["email"];
$header = $_POST["header"];
$message = $_POST["message"];
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require "C:\xampp\composer\vendor\autoload.php";
$mail = new PHPMailer(TRUE);
try {
$mail->setFrom($email, $name);
$mail->addAddress("MY EMAIL", "MY NAME");
$mail->Subject($header);
$mail->isHTML(True);
$mail->Body = ("<html>$message</html");
$mail->AltBody = strip_tags($message);
$mail->SMTPDebug = 1;
$mail->isSMTP();
$mail->Host = 'smtp.sendgrid.net';
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tls';
$mail->Username = "MY SENDGRID USERNAME";
$mail->Password = "MY SENDGRID PASSWORD";
$mail->Port = 587;
$mail->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);
$mail->send();
} catch (Exception $e) {
echo $e->errorMessage();
} catch (\Exception $e) {
echo $e->getMessage();
}
?>
Я очень новичок в этом, поэтому я, вероятно, допустил много ошибок.Я использую xampp и установил PHPMailer и Sendgrid в папку поставщика xampp с помощью Composer.Я создал учетную запись sendgrid и создал API-ключ, но не уверен, как его использовать.Я также не уверен в том, как я связал кнопку «Отправить» с contact.php в HTML, и я получаю сообщение об ошибке «не удается POST scripts / contact.php».
Здесь есть несколько проблемтак вот мои вопросы:
- Правильно ли PHP для этого процесса?
- Правильно ли я связал PHP с кнопкой «Отправить»?
- Как сделатьЯ избегаю ошибок «not POST»?
- Загружается ли Sendgrid из терминала с помощью 'composer require sendgrid / sendgrid', а затем достаточно задать хост как smtp.sendgrid.net, чтобы запустить его с Sendgrid?