Я использую SendGrid для отправки электронного письма через форму HTML. HTML выглядит правильно для меня, как и PHP, но когда я нажимаю кнопку отправки, меня перенаправляют на страницу с надписью Cannot POST /sendmail.php
. Я новичок в PHP, но код выглядит правильно.
В консоли сообщения об ошибке / страницы есть две ошибки.
Первый говорит следующее: Refused to execute inline script because it violates the following Content Security Policy directive: "default-src 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-ThhI8UaSFEbbl6cISiZpnJ4Z44uNSq2tPKgyRTD3LyU='), or a nonce ('nonce-...') is required to enable inline execution. Note also that 'script-src' was not explicitly set, so 'default-src' is used as a fallback.
Второй говорит следующее: Refused to load the font '<URL>' because it violates the following Content Security Policy directive: "default-src 'self'". Note that 'font-src' was not explicitly set, so 'default-src' is used as a fallback.
Эти сообщения об ошибках актуальны?
Я должен Также отметьте, что я запускаю форму на сервере nodeJS. Работают ли почтовые сценарии при работе на localhost? Вот мой HTML:
<!DOCTYPE html>
<html>
<body>
<form name="form" action="sendmail.php" method="POST">
<input type="text" name="name" placeholder="name">
<input type="text" name="email" placeholder="email">
<input type="text" name="message" placeholder="message">
<button name="submit" type="submit">Submit</button>
</form>
</body>
</html>
Вот мой PHP
<?php
/*SendGrid Library*/
require 'vendor/autoload.php';
if (isset($_POST['submit'])) {
/*Post Data*/
$user_name = $_POST['name'];
$user_email = $_POST['email'];
$user_message = $_POST['message'];
/*Content*/
$email = new \SendGrid\Mail\Mail();
$email->setFrom("$user_email", "$user_name");
$email->setSubject("Send Email Attachments with Twilio SendGrid");
$email->addTo("example@example.com", "Example User");
$email->addContent(
"text/html",
"How easy can this be?"
);
$sendgrid = new \SendGrid(getenv('SENDGRID_API_KEY'));
/*Response*/
try {
$response = $sendgrid->send($email);
print $response->statusCode() . "\n";
print_r($response->headers());
print $response->body() . "\n";
} catch (Exception $e) {
echo 'Caught exception: '. $e->getMessage() ."\n";
}
}
?>
Все связанные вопросы не очень помогли мне. Спасибо