Swift 邮件程序错误 500

Posted

技术标签:

【中文标题】Swift 邮件程序错误 500【英文标题】:Swift Mailer Error 500 【发布时间】:2019-02-02 02:51:30 【问题描述】:

您好,我来找您是因为我在使用 SwiftMailer php 功能时遇到问题,确实发送功能不起作用并且电子邮件看起来不(服务器 OVH),但在本地它可以完美运行。我试图通过放置几个die()来查找一些错误,并且看起来问题来自$ result = $ mailer-> send($ message); 如果不是连接,我不明白本地和生产之间的区别(我在 OVH 和我自己定义的 mdp 上恢复的地址) 我希望获得更多有关这方面的信息并帮助解决我的问题,谢谢!

<?php
session_start();


error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);


require_once 'vendor/autoload.php';

if($_SERVER['SERVER_NAME'] == 'localhost')
  $transport = (new Swift_SmtpTransport('smtp.mailtrap.io', 25))
    ->setUsername('*****')
    ->setPassword('*****');

else

  $transport = (new Swift_SmtpTransport('SSL0.OVH.NET', 587))
    ->setUsername('contact@matheozeller.fr')
    ->setPassword('Password');
  

  $mailer = new Swift_Mailer($transport);



  $errors = array(); // on crée une vérif de champs
  if(empty($_POST['Nom'])) // on verifie l'existence du champ et d'un contenu
    $errors ['Nom'] = "Vous n'avez pas renseigné votre nom";
  
  if(!array_key_exists('Email', $_POST) || $_POST['Email'] == '' || !filter_var($_POST['Email'], FILTER_VALIDATE_EMAIL)) // on verifie existence de la clé
    $errors ['Email'] = "Vous n'avez pas renseigné votre email";
  
  if(empty($_POST['Sujet'])) // on verifie l'existence du champ et d'un contenu
    $errors ['Sujet'] = "Vous n'avez pas renseigné l'objet du message";
  
  if(empty($_POST['Message'])) 
    $errors ['Message'] = "Vous n'avez pas renseigné votre Message";
  


  if(empty($errors) !== true ) // si erreur on renvoie vers la page précédente
    $_SESSION['errors'] = $errors;//on stocke les erreurs
    $_SESSION['inputs'] = $_POST;
    header('Location: contact.php');
  else
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
    $message = (new Swift_Message(htmlspecialchars($_POST['Sujet'])))
    ->setSubject(htmlspecialchars($_POST['Sujet']))
    ->setFrom([htmlspecialchars($_POST['Email']) => htmlspecialchars($_POST['Nom'])])
    ->setTo(['matheo.zeller@gmail.com'])
    ->setBody(htmlspecialchars($_POST['Message']));

    $result = $mailer->send($message);

    $_SESSION['success'] = 1;
  header('Location: contact.php');


?>

【问题讨论】:

A 500 错误是一种通用错误消息,几乎涵盖了脚本可能出错的每一件事。检查您的服务器错误日志以找出确切的错误消息。 我该怎么做? 与您的网络主机商核实如何查找服务器错误日志。对于某些系统,其中一个目录中有一个 error.log。对于其他人,它位于/var/log/apache//var/log/nginx 【参考方案1】:

500 错误表示您的服务器有问题。但是你可以尝试记录php错误,你可以比较本地使用的php版本和你在服务器上使用的php版本。也许您在服务器上使用的是旧版本。

【讨论】:

PHP dev = 7.2,PHP server = 7.2,相同版本,我已经检查过了 好的,在某些限制下运行脚本?你的最大执行时间和内存限制是多少? (在服务器上) :) 它是一个 apache?您是否可以访问配置文件或常规的虚拟主机? 我只能访问我的设置主机,我使用的是 apache,是的 所以它是一个虚拟主机而不是你自己的服务器?请通过 ftp 转到您的脚本并在此文件夹中创建一个名为 .htaccess -> "." 的新文件很重要。新 .htaccess 文件的内容:### php_value max_execution_time 200 php_value memory_limit 256M ### 文件末尾您可以使用 php 信息文件测试这些设置。只需像这样创建另一个 php 文件: phpinfo.php 如果你在 fia 浏览器中调用这个文件,你可以看到设置

以上是关于Swift 邮件程序错误 500的主要内容,如果未能解决你的问题,请参考以下文章

收到 500 内部服务器错误 Flask 应用程序

Django:如何使用 handler500 重定向到前端服务器页面并接收管理错误电子邮件

Laravel 邮件奇怪的超时错误

Django 1.3 日志记录:未记录 500 个错误

上传Multipart swift Image Upload内部服务器错误500作为响应

wordpress程序安装时提示500错误