使用SMTP / PHP的间歇式联系表单失败

时间:2018-08-15 12:58:55

标签: php

我有一个使用php的联系表格。间歇性地失败并显示错误:

  

内部服务器错误   服务器遇到内部错误或配置错误,无法完成您的请求。   请与服务器管理员webmaster@website.com联系,并通知他们错误发生的时间,以及您可能做的任何可能导致错误的事情。   服务器错误日志中可能会提供有关此错误的更多信息。   此外,尝试使用ErrorDocument处理请求时遇到了500 Internal Server Error错误。

将SMTPDebug设置为3不会显示失败之前的任何信息。

看我看到的日志文件:

脚本头过早结束

同级重置连接:mod_fcgid:从FastCGI读取数据时出错

PHP版本当前为5.6,尽管我更改为7.0,但没有区别。我从FastCGI切换到CGI,这也没有任何区别。

php形式如下:

 <?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
// Import PHPMailer classes into the global namespace
// These must be at the top of your script, not inside a function
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

//Load composer's autoloader
require '/home/username/phpmailer/vendor/autoload.php';


if(isset($_POST['submit'])) 
{

$message=
'Full Name: '.$_POST['fullname'].'<br />
Email:  '.$_POST['emailid'].'<br />
Comments:   '.$_POST['comments'].'
';


    // Instantiate Class  
    $mail = new PHPMailer();  

    // Set up SMTP  
    $mail->SMTPDebug = 0;            // Enable verbose debug output
    $mail->IsSMTP();                // Sets up a SMTP connection  
    $mail->SMTPAuth = true;         // Connection with the SMTP does require authorization    
    $mail->SMTPSecure = "tls";      // Connect using a TLS connection  
    $mail->Host = "smtp-mail.outlook.com";  //Gmail SMTP server address
    $mail->Port = 587;               //Gmail SMTP port
    $mail->Encoding = '7bit';

    // Authentication  
    $mail->Username   = "myusername@outlook.com"; // Your full Gmail address
    $mail->Password   = "mypassword"; // Your Gmail password

    // Compose
    $mail->setFrom('myusername@outlook.com', 'Mailer');
    $mail->AddReplyTo($_POST['emailid'], $_POST['fullname']);
    $mail->Subject = "New Contact Form Enquiry";      // Subject (which isn't required)  
    $mail->MsgHTML($message);

    // Send To  
    $mail->AddAddress("myusername@outlook.com", "My Name"); // Where to send it - Recipient
       $result = $mail->Send();     // Send!  
    $message = $result ? '<div class="alert alert-success" role="alert"><strong>Thank you for contacting me.</strong></div>' : '<div class="alert alert-danger" role="alert"><strong>Error!</strong>There was a problem delivering the message.</div>';  

    unset($mail);

}
?>

当它失败时,它可能(并非总是)将在以后立即进行下一次尝试。我看不到任何失败的模式。

我已经阅读过有关mod_security是原因或正在编辑.htaccess的评论,但是我处于未知领域。我不想做会导致安全漏洞的事情。

我将不胜感激。

0 个答案:

没有答案