web-dev-qa-db-fra.com

E-mail SMTP échouant via Joomla, réussissant en dehors de Joomla

Je pense que j'ai besoin d'un moyen de déboguer plus en détail la façon dont Joomla tente d'envoyer un courrier électronique SMTP car je ne parviens pas à faire fonctionner ses mécanismes de messagerie, mais j'ai l'impression que SMTP est celui qui a le plus de chances de fonctionner depuis que j'ai reçu SMTP. email travaillant sur le même hôte avec un autre code de test. L'erreur que je reçois lorsque j'essaie d'envoyer un message privé du compte superutilisateur principal à un autre compte superutilisateur à l'aide de Composants -> Messagerie -> Nouveau message privé est la suivante:

Notice
SMTP Error: data not accepted.

Mes paramètres SMTP dans la configuration globale sont les suivants:

Send Mail: Yes
Mailer: SMTP
From email: [email protected]
From name: Benjamin Marty
Disable Mass Mail: No
SMTP Authentication: Yes
SMTP Security: None
SMTP Port: 25
SMTP Username: [email protected]
SMTP Password: (same password I used in the script below)
SMTP Host: mail.sgdk2.enigmadream.com

Lorsque la défaillance s'est produite, j'ai décidé d'essayer un test avec PHPMailer de https://github.com/PHPMailer/PHPMailer et le script suivant recommandé par Dreamhost à l'adresse http: // wiki. dreamhost.com/PHPMailer :

<?php
/**
* This example shows making an SMTP connection with authentication.
*/

//SMTP needs accurate times, and the PHP timezone MUST be set
//This should be done in your php.ini, but this is how to do it if you don't have access to that
date_default_timezone_set('Etc/UTC');

require 'PHPMailerAutoload.php';
//Create a new PHPMailer instance
$mail = new PHPMailer;

//Tell PHPMailer to use SMTP
$mail->isSMTP();
//Enable SMTP debugging
// 0 = off (for production use)
// 1 = client messages
// 2 = client and server messages
$mail->SMTPDebug = 2;
//Ask for HTML-friendly debug output
$mail->Debugoutput = 'html';

//Set the hostname of the mail server
$mail->Host = "mail.sgdk2.enigmadream.com";
//Set the SMTP port number - likely to be 25, 465 or 587
$mail->Port = 25;
//Whether to use SMTP authentication
$mail->SMTPAuth = true;
//Username to use for SMTP authentication
$mail->Username = "[email protected]";
//Password to use for SMTP authentication
$mail->Password = "See Comment"; // I used the same password configured above
//Set who the message is to be sent from
$mail->setFrom('[email protected]', 'Benjamin Marty');
//Set an alternative reply-to address
$mail->addReplyTo('[email protected]', 'Benjamin Marty');
//Set who the message is to be sent to
$mail->addAddress('[email protected]', 'Ben Marty');

//Set the subject line
$mail->Subject = 'PHPMailer SMTP test';
//if you want to include text in the body. 
$mail->Body    = "This is a test of email";

//send the message, check for errors
if (!$mail->send()) {
   echo "Mailer Error: " . $mail->ErrorInfo;
} else {
   echo "Message sent!";
}
?>

Le script PHP a été installé dans un sous-répertoire dans lequel Joomla est installé, et cela fonctionne parfaitement. Mais Joomla ne fonctionne pas. Comment puis-je circonscrire le problème?

4
BlueMonkMN

Il semble que le problème réside dans le fait que Joomla utilise l'adresse De de l'utilisateur envoyant le message au lieu de l'adresse De configurée dans les paramètres du serveur de la configuration globale. Lorsque j'ai modifié l'adresse électronique du super-utilisateur pour qu'elle corresponde à celle de mon autre test, le courrier électronique est passé.

3
BlueMonkMN