SMTPエラーなし、メール送信なし


7

私はこれまでしばらくの間これと戦っています。フォーム用のカスタムコンポーネントを作成しました。Joomlaのメール機能を使用してメールを送信します。すべてのデータをチェックして正しいことを確認しましたが、電子メールが送信さ$mailer->Send()れず、trueも返されます。

すべてのスタイルのエラー報告をオンにしても、エラーは報告されません。

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

これは、メールが送信されるコンポーネントの中心です。$ settingsは、メールを送信するために必要な情報を保存するために使用するオブジェクトであり、「成功した」送信として読み取られた後、すべての適切な情報を出力します。どのマンドリルでも、電子メールに使用するサービスは電子メールを取得しません。つまり、私が知る限り、SMTPへの接続に失敗したことを意味します。つまり、接続のある時点でエラーが発生したはずですが、Joomlaはそれを確認できません。

この同じコードは他の多くのサイトで機能します。問題のサイトはサブドメインであり、hostgatorでホストされていますが、どのような形式のエラーもなければ、修正を探す場所がわかりません。


簡単なスクリプトまたは標準のJoomla連絡フォームを試して、それが機能するかどうか確認しましたか?そうでない場合は、メール設定またはサーバーの問題の可能性があります。
ロバートは

回答:


8

JoomlaはPHPMailerをメールハンドラーとして使用します。PHPMailerを有効にすると、素敵なSMTPログが作成されます。これを行うには、SMTPDebug変数を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;
}

これは、JoomlaとSMTPサーバー間の通信の問題を見つけるのに役立ちます。


1
敬虔なことに、すべてのグーグルで私はそのような設定があるとは知りませんでした。SMTP -> ERROR: Failed to connect to server: Connection refused (111)SMTP connect failed。今、少なくとも私は、マンドリルが何らかの理由でホストゲーターをブラックリストに載せていることを知っています。
ジョーダンラムスタッド2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.