SMTP không có lỗi nhưng không gửi email


7

Tôi đã chiến đấu với điều này một thời gian. Tôi đã xây dựng một thành phần tùy chỉnh cho các biểu mẫu và nó sử dụng các chức năng thư của Joomla để gửi email. Tôi đã kiểm tra tất cả các dữ liệu để đảm bảo rằng nó là chính xác nhưng email chỉ không gửi, cũng $mailer->Send()trả lại đúng sự thật.

Bật mọi kiểu báo cáo báo cáo cũng không có lỗi.

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

Đây là trung tâm của thành phần nơi email được gửi, cài đặt $ là đối tượng tôi sử dụng để lưu trữ thông tin mà tôi cần gửi email và sau khi được đọc là "thành công", hãy gửi nó ra tất cả thông tin phù hợp . Tuy nhiên, dịch vụ mà chúng tôi sử dụng cho email không bao giờ nhận được email, có nghĩa là theo như tôi có thể nói là không kết nối được với SMTP nghĩa là nó đã bị lỗi tại một số điểm trong kết nối, nhưng Joomla không thấy được.

Mã tương tự này hoạt động trên nhiều trang web khác, một trong những câu hỏi là một tên miền phụ và được lưu trữ với máy chủ lưu trữ, mặc dù không có bất kỳ hình thức lỗi nào, tôi không biết phải bắt đầu tìm cách khắc phục.


Bạn đã thử một tập lệnh đơn giản hoặc biểu mẫu liên hệ Joomla tiêu chuẩn để xem nó có hoạt động không? Nếu không, đó có thể là cài đặt thư hoặc sự cố máy chủ.
Robert Went

Câu trả lời:


8

Joomla sử dụng PHPMailer làm trình xử lý thư. PHPMailer có một bản ghi SMTP đẹp nếu bạn bật nó. Bạn có thể làm điều này bằng cách đặt biến SMTPDebug thành true

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

Điều này sẽ giúp bạn tìm ra vấn đề trong giao tiếp giữa Joomla và máy chủ smtp.


1
Chúa ơi, trong tất cả các googling tôi đã không thấy có một thiết lập như vậy. SMTP -> ERROR: Failed to connect to server: Connection refused (111)SMTP connect failed. Bây giờ ít nhất tôi biết mandrill là danh sách đen chủ nhà vì một số lý do.
Jordan Ramstad
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.