it-swarm.com.de

SMTP kein Fehler, aber keine E-Mail senden

Ich kämpfe jetzt schon seit einiger Zeit damit. Ich habe eine benutzerdefinierte Komponente für Formulare erstellt, die die 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 nicht gesendet. $mailer->Send() gibt ebenfalls true zurück.

Wenn Sie jede Art 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, in der die E-Mail gesendet wird. Die $ settings 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 . Wie auch immer, der Dienst, den wir für E-Mails verwenden, erhält die E-Mail nie. Soweit ich das beurteilen kann, konnte keine Verbindung zu SMTP hergestellt werden, was bedeutet, dass es irgendwann einen Fehler in der Verbindung geben sollte, aber Joomla kann ihn nicht sehen.

Derselbe Code funktioniert auch auf vielen anderen Websites. Bei der fraglichen handelt es sich um eine Subdomain, die mit Hostgator gehostet wird. Ich habe jedoch keine Ahnung, wo ich anfangen soll, nach einem Fix zu suchen.

7
Jordan Ramstad

Joomla verwendet PHPMailer als Mail-Handler. PHPMailer hat ein Nizza SMTP-Protokoll, wenn Sie es aktivieren. Sie können dies tun, indem Sie die Variable SMTPDebug auf true setzen

$mailer = JFactory::getMailer();

$mailer->SMTPDebug = true;

$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 sollte Ihnen helfen, das Problem in der Kommunikation zwischen Joomla und dem SMTP-Server zu finden.

8
Harald Leithner