it-swarm-tr.com

SMTP hata yok ama e-posta göndermiyor

Bir süredir bununla mücadele ediyorum. Formlar için özel bir bileşen oluşturdum ve e-posta göndermek için Joomla'nın posta işlevlerini kullanıyor. Doğru olduğundan emin olmak için tüm verileri kontrol ettim, ancak e-posta sadece göndermiyor, $mailer->Send() de doğru döndürüyor.

Her hata bildirimi stilini açtığınızda hata bildirilmez.

$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;
}

Bu, e-postanın gönderildiği bileşenin kalbidir, $ ayarları, e-postayı göndermek için ihtiyacım olan bilgileri saklamak için kullandığım bir nesnedir ve "başarılı" olarak gönderildikten sonra tüm uygun bilgileri gönderir . Ancak mandrill, e-postalar için kullandığımız hizmet asla e-posta almaz, yani SMTP'ye bağlanamadığım kadarıyla bağlantının bir noktasında bir hata olması gerektiği anlamına gelir, ancak Joomla bunu göremez.

Bu aynı kod diğer birçok sitede çalışır, söz konusu bir alt alan adıdır ve hostgator ile barındırılır, ancak herhangi bir hata olmadan nerede bir düzeltme aramaya başlayacağımla ilgili hiçbir fikrim yok.

7
Jordan Ramstad

Joomla, posta işleyici olarak PHPMailer kullanır. PHPMailer'ı açarsanız güzel bir SMTP günlüğü vardır. Bunu SMTPDebug değişkenini true olarak ayarlayarak yapabilirsiniz

$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;
}

Bu, Joomla ve smtp sunucusu arasındaki iletişimde sorunu bulmanıza yardımcı olacaktır.

8
Harald Leithner