3

CakePHPでEmailComponentを使用するたびに、電子メールが送信されたか、失敗したかをどのように確認できますか?

たとえば、私は現在それを次のように使用しています。

$this->Email->from='<xyz@yahoo.com>';  
$this->Email->to='<abc@gmail.com>';
$this->Email->sendAs='both';
$this->Email->delivery = 'debug';
$this->Email->send();
4

1 に答える 1

10

$this->Email->send() 正常に送信された場合はtrueを返す必要があります。次のようなことを試すことができます:

if ( $this->Email->send() ) {
    // Success
} else {
    // Failure
}

参照:

http://api.cakephp.org/2.3/class-EmailComponent.html

注:CakePHP 2.xを使用している場合は、代わりにCakeEmailクラスを使用してみてください。EmailComponentは非推奨になりました(リファレンス)。1.xを使用している場合は、続行します。:p

編集:

コメントに記載されているように、2.xを使用している場合、CakeEmail(EmailComponentによって使用される)が例外をスローする可能性があることに注意してください。CakePHP自体を使用するか、try/catchを投げることで処理できます。

try {
    if ( $this->Email->send() ) {
        // Success
    } else {
        // Failure, without any exceptions
    }
} catch ( Exception $e ) {
    // Failure, with exception
}
于 2013-03-27T00:13:45.393 に答える