0

私は電子メール機能を実装していて、それもうまく機能しています。今、私はローカルでデバッグする必要があるので、app / config/email.phpで以下に示すようにいくつかの変更を行いましたこれを作成しました

public $test = array(
        'from' => 'you@localhost',
        'transport' => 'Debug',
    );

今私のコントローラーで私は以下のコードを書いています

            $Email = new CakeEmail('test');

        $email->template('adddoctor', 'add');

        //$email->emailFormat('html');


        $email->from('sender@example.com');

        $email->to('recipient@example.com');//$data['User']['email_id'];

        $email->subject('Account Detail');


        $email->send();

メールを送信した後、インデックスページにリダイレクトされます。だからindex.ctpファイルに私は書いています

<?php echo $this->Session->flash('email'); ?>

実際のメールは送りたくないのですが、見せたいだけです。だから誰かが私がまだ電子メールのデバッグのためにやらなければならない変更を教えてもらえますか?ここでいくつかは答えを与えました CakeEmaildebug

しかし、そのコードをどこに書くべきかわからないのですか?

4

3 に答える 3

3

これは、メールをログに保存するために必要なことです。これは、実装しようとしている他の質問の解決策に関連しています。

app/Config/email.php

public $test = array(
    'log' => true
);

あなたのコントローラー

$Email = new CakeEmail('test');
$email->template('adddoctor', 'add');
$email->from('sender@example.com');
$email->to('recipient@example.com');
$email->subject('Account Detail');
$email->send();

次にapp/tmp/logs/debug.logに移動すると、ヘッダーとメッセージを含むメールのエントリが表示されます

2012-11-27 14:37:47 Debug: 
From: My Site <me@example.com>
X-Mailer: CakePHP Email
Date: Tue, 27 Nov 2012 14:37:47 +0000
Message-ID: <50ad02b4b1fba42733cc02456a@example.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
My message

ただし、私の意見では、ヘッダーを表示したくない場合を除き、これはまったく役に立ちません。第一に、メールがどのように表示されるかを実際に「見る」ことができず、第二に、メールは引き続き受信者に送信されます。

メールの実際のレイアウト/CSS がどのように見えるかを確認したい場合は、テスト メールを送信するだけでよいでしょう。

Cake が以前の電子メール デバッグ機能を削除した理由はわかりません。

于 2012-11-27T14:52:16.630 に答える
1
$Email = new CakeEmail('test');
$email->template('adddoctor', 'add');

オブジェクトを作成し、タイプミスである$Emailとして使用していますか?$email

于 2013-08-01T13:24:14.363 に答える
1
$response = $Email->send();

$response['headers']; // headers as string
$response['message']; // message body with attachments

$this->Session->setFlash($response['headers'].$response['message']);

レイアウト ファイルに次のものが含まれていることを確認します。

echo $this->Session->flash();
于 2013-09-28T12:20:07.330 に答える