我购买了一个模板,其中包含使用AJAX的PHP联系人表单。我正在使用Heroku部署我的Web应用程序(我的产品组合),并使用SendGrid作为附件,以便从我的产品组合中发送API驱动的电子邮件。提交表单时,出现“ 500:内部服务器错误”,所以我的问题是,如何将SendGrid集成到已有的PHP代码中?
我不熟悉PHP,在研究期间我确实下载了composer,并且这些文件是自动化的: -供应商文件夹 -composer.json文件 -composer.lock文件
这是我的仓库:https://github.com/Mendiolac/Portfolio 这是我的投资组合链接:https://cm-portfolio.herokuapp.com/
我尝试了SMTP路由,其中SendGrip为您提供了通过连接其服务器来配置应用程序的步骤,并且当我测试该应用程序时未成功,没有错误消息。
<?php
require '../vendor/autoload.php';
if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {
die('Sorry Request must be Ajax POST');
}
if(isset($_POST)) {
$name = filter_var($_POST["name"], FILTER_SANITIZE_STRING);
$email = filter_var($_POST["email"], FILTER_SANITIZE_EMAIL);
$subject = filter_var($_POST["subject"], FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES);
$message = filter_var($_POST["message"], FILTER_SANITIZE_STRING);
if(!$contact_email_to || $contact_email_to == 'contact@example.com') {
die('The contact form receiving email address is not configured!');
}
if(strlen($name)<3){
die($contact_error_name);
}
if(!$email){
die($contact_error_email);
}
if(strlen($subject)<3){
die($contact_error_subject);
}
if(strlen($message)<3){
die($contact_error_message);
}
if(!isset($contact_email_from)) {
$contact_email_from = "contactform@" . @preg_replace('/^www\./','', $_SERVER['SERVER_NAME']);
}
$headers = 'From: ' . $name . ' <' . $contact_email_from . '>' . PHP_EOL;
$headers .= 'Reply-To: ' . $email . PHP_EOL;
$headers .= 'MIME-Version: 1.0' . PHP_EOL;
$headers .= 'Content-Type: text/html; charset=UTF-8' . PHP_EOL;
$headers .= 'X-Mailer: PHP/' . phpversion();
$message_content = '<strong>' . $name_title . '</strong> ' . $name . '<br>';
$message_content .= '<strong>' . $email_title . '</strong> ' . $email . '<br>';
$message_content .= '<strong>' . $message_title . '</strong> ' . nl2br($message);
$sendemail = mail($contact_email_to, $subject_title . ' ' . $subject, $message_content, $headers);
if( $sendemail ) {
echo 'OK';
} else {
echo 'Could not send mail! Please check your PHP mail configuration.';
}
}
?>
答案 0 :(得分:0)
您在https://github.com/Mendiolac/Portfolio/commit/0ad2fc815523a26f272f91bb192123c4caf41632上正确地进行了操作,只需将密钥添加到.env文件中