HostGator服务器上PHPMailer+Gmail SMTP发送成功却收不到邮件问题
PHPMailer结合Gmail SMTP部署到HostGator后邮件发送成功但收件人未收到问题
我使用PHPMailer结合Gmail SMTP服务器搭建了contact_us表单,本地环境运行完全正常,但部署到HostGator服务器后,页面提示“邮件发送成功”,但作为收件人的Gmail账户却未收到邮件。我仅能访问服务器上上传站点文件的根目录,相关代码如下:
require "vendor/autoload.php"; // Include packages and files for PHPMailer and SMTP protocol use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require 'vendor/phpmailer/phpmailer/src/Exception.php'; require 'vendor/phpmailer/phpmailer/src/PHPMailer.php'; require 'vendor/phpmailer/phpmailer/src/SMTP.php'; // Initialize PHP mailer, configure to use SMTP protocol and add credentials $mail = new PHPMailer(); $mail->IsSMTP(); $mail->Mailer = "smtp"; $mail->SMTPDebug = 0; $mail->SMTPAuth = TRUE; $mail->SMTPSecure = "tls"; $mail->Port = 587; $mail->Host = "smtp.gmail.com"; require_once 'folder/video.php'; $mail->Username = SMTP_USERNAME; $mail->Password = SMTP_PASSWORD; $success = ""; $error = ""; $name = $message = $email = ""; $errors = array('name' => '', 'email' => '', 'message' => ''); if (isset($_POST["submit"])) { if (empty(trim($_POST["name"]))) { $errors['name'] = "Your name is required"; } else { $name = SanitizeString($_POST["name"]); if (!preg_match('/^[a-zA-Z\s]{2,50}$/', $name)) { $errors['name'] = "Only letters and spaces allowed"; } } if (empty(trim($_POST["email"]))) { $errors["email"] = "Your email is required"; } else { $email = SanitizeString($_POST["email"]); if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $errors["email"] = "Please give a proper email address"; } } if (empty(trim($_POST["message"]))) { $errors["message"] = "Please type your message"; } else { $message = SanitizeString($_POST["message"]); if (!preg_match("/^[a-zA-Z\d\s]+$/", $message)) { $errors["message"] = "Only letters, spaces and maybe numbers allowed"; } } if (array_filter($errors)) { } else { try { $mail->setFrom($email, $name); $mail->addAddress("mail@gmail.com", "My name"); $mail->Subject = 'new message'; $mail->Body = $message; // send mail $mail->send(); // empty users input $name = $message = $email = ""; $success = "Message sent successfully"; } catch (Exception $e) { // echo $e->errorMessage(); use for testing & debugging purposes $error = "Sorry message could not send, try again"; } catch (Exception $e) { // echo $e->getMessage(); use for testing & debugging purposes $error = "Sorry message could not send, try again"; } } } function SanitizeString($var) { $var = strip_tags($var); $var = htmlentities($var); return stripslashes($var); }
表单在本地环境运行正常,以下为服务器文件夹截图和本地VSCode文件夹截图:


内容的提问来源于stack exchange,提问作者Teleport
相关产品推荐
相关产品推荐

