2013-04-10 21 views
5

CakePHPでの電子メールの送信が成功したかどうかを確認する方法はありますか?電子メールの送信がCakePHPで成功/失敗したかどうかを確認しますか?

電子メールは問題なく送信できますが、送信に失敗するとエラーを処理できるようにしたいと考えています。これどうやってするの?

これは私がこれまで何をやったかです:あなたは、メールが正常にMTAに手渡されたかどうかをチェックするためのtry catchブロックを使用することができ

$email = new CakeEmail(); 
$email->from(array('email' => 'title')); 
$email->to($to); 
$email->subject('Account activation');  
$activate_url = 'http://' . env('SERVER_NAME') .'/cakephp/users/activate/'.$id.'/'.$token; 
$message = "Thank you for signing up. Click on the activation link to activate your account \n"; 
return $email->send($message.$activate_url); 
+0

これを試してみましたか? –

+0

メールがsmtpサーバに正しく転送されたかどうかを検出することができます。受信側のサーバが電子メールを拒否/スパムしたかどうか、またはSMTPサーバがメールを遅延/キューに入れているかどうかを直接検出することはできません。 –

答えて

9

、あなたは本当に検出または確認することができない場合メールは受信者に正常に配信されました。それは別のケースです。あなたのメールヘッダで返信に設定されている代わり場合

try { 
    if ($this->Email->send()) { 
     // Success 
    } else { 
     // Failure, without any exceptions 
    } 
} catch (Exception $e) { 
    // Failure, with exception 
} 

、あなたはどのあなたは、メッセージが配信されていないことを確信を持って言うようになるバウンスメールをチェックできます。

関連する問題