Swift 邮件程序错误 500
Swift Mailer Error 500
你好,我来找你是因为我有一个功能 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');
}
?>
500 错误表示您的服务器有问题。但是你可以尝试记录 php 错误,你可以比较本地使用的 php 版本和你在服务器上使用的 php 版本。也许你在服务器上使用旧版本。
你好,我来找你是因为我有一个功能 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');
}
?>
500 错误表示您的服务器有问题。但是你可以尝试记录 php 错误,你可以比较本地使用的 php 版本和你在服务器上使用的 php 版本。也许你在服务器上使用旧版本。