1

最近、メールの実装をコンソールベースに切り替えました。

残念ながら、電子メール ビュー内の次のヘルパー コードは壊れています。

$this->Html->image('file.png', array('fullBase' => true)

CakeEmail のドメイン変数を正しい値に設定しましたが:

$email->domain('www.domain.tld');

ヘルパーは以下を生成します

http://home/www/domain.tld/htdocs/img/file.png?1382530379

現在の動作: ファイルのアセットのタイムスタンプはおまじないのように機能しますが、残念ながら fullBase は、コンソール呼び出し、ファイルの UNIX パスが原因だと思います。

予想される動作: fullBaseUrl は、CakeEmail オブジェクトで設定しているドメインである必要があります。

皆さん: ドメインを自分で $this->Html->image() 呼び出しに入れる以外に、他の可能性はありますか?

4

1 に答える 1

1

CakeEmail::domain はあなたが望むことをしません

アセットのベース URL を構成するためのドメイン機能はありません。その目的は、メッセージ id のホスト名として機能することですコードをざっと見て、がどこ$this->_domainで使用されているかを確認すると、メッセージ ヘッダーにのみ使用されていることが確認できます。

fullBaseUrl

設定するオプションは、 Router::fullBaseUrlApp.fullBaseUrlを呼び出すかのいずれかです。

// inside email-sending command, before sending an email
Router::fullBaseUrl('http://example.com');

または、 core.phpで直接構成することによって:

// anywhere before an email is sent
Configure::write('App.fullBaseUrl', 'http://example.com');
于 2013-10-28T09:10:00.053 に答える