Ich habe seit einiger Zeit damit zu kämpfen. Ich habe eine benutzerdefinierte Komponente für Formulare erstellt, die die E-Mail-Funktionen von Joomla zum Senden von E-Mails verwendet. Ich habe alle Daten überprüft, um sicherzustellen, dass sie korrekt sind, aber die E-Mail wird einfach nicht gesendet und $mailer->Send()
gibt auch true zurück.
Wenn Sie alle Arten der Fehlerberichterstattung aktivieren, werden auch keine Fehler gemeldet.
$mailer = JFactory::getMailer();
$mailer->setSender($settings->sender);
$mailer->addRecipient($settings->to);
$mailer->setSubject($settings->subject);
$mailer->isHTML(true);
$mailer->setBody($settings->body);
if($send = $mailer->Send()){
//email worked
//print_r($settings);
//exit;
}else{
echo 'error';
exit;
}
Dies ist das Herzstück der Komponente, an die die E-Mail gesendet wird. Die $ -Einstellungen sind ein Objekt, mit dem ich die Informationen speichere, die ich zum Senden der E-Mail benötige, und nach dem Lesen als "erfolgreich" werden alle richtigen Informationen ausgegeben . Mandrill, der Dienst, den wir für E-Mails verwenden, erhält die E-Mail jedoch nie, was bedeutet, dass, soweit ich das beurteilen kann, keine Verbindung zu SMTP hergestellt werden konnte, was bedeutet, dass irgendwann in der Verbindung ein Fehler aufgetreten sein sollte, Joomla ihn jedoch nicht sieht.
Der gleiche Code funktioniert auf vielen anderen Websites. Die betreffende ist eine Subdomain und wird mit Hostgator gehostet. Ohne Fehler habe ich jedoch keine Ahnung, wo ich nach einer Lösung suchen soll.
Antworten:
Joomla verwendet PHPMailer als Mail-Handler. PHPMailer hat ein schönes SMTP-Protokoll, wenn Sie es aktivieren. Sie können dies tun, indem Sie die Variable SMTPDebug auf true setzen
Dies soll Ihnen helfen, das Problem in der Kommunikation zwischen Joomla und dem SMTP-Server zu finden.
quelle
SMTP -> ERROR: Failed to connect to server: Connection refused (111)SMTP connect failed
. Jetzt weiß ich zumindest, dass Mandrill aus irgendeinem Grund den Hostgator auf die schwarze Liste setzt.