問題タブ [cakeemail]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cakephp - CakeEmail が送信されないのはなぜですか?
フォーム ボタンが押された後、view.ctp ファイルから次の関数が呼び出されます。しかし、何も受信されていません。何かアドバイス?
php - メールのモックメソッドを使用したテーブルのないCakePHP 2テストモデル
テーブルがないモデルのテストを作成しようとしていますが、データが CakePHP 2 での検証に合格した場合にメールを送信します。
テストするために、一部のデータが検証に合格したため、実際にメールを送信せずにメールを送信することを主張したいと思います。このために、CakeEmail のモック メソッドを作成しようとしています。ただし、モック メソッドに対して $useDbConfig が定義されていないため、テストは失敗します。
これはモデルにテーブルがない問題だと思いますが、解決方法がわかりません。
私のモデルは次のようになります (検証ルールを除く):-
私のテストは: -
どんな助けでも大歓迎です。テストを使用してCakeのメソッドをモックしようとした/必要としたのはこれが初めてです。
php - CakePHP CakeEmail メールを送信できませんでした
既存のスレッドをほぼすべて調べましたが、まだ問題が見つからないため、新しいスレッドを投稿することにしました。
ライブ サーバーで実行しているコードがあり、電子メール機能は問題なく動作しています。これは請負業者によってセットアップされたもので、彼は CakePHP のセットアップ方法に関するドキュメントを残していませんでした。
ライブ サーバーとまったく同じように動作するようにステージング サーバーをセットアップする必要があります。電子メール機能を除いて、すべてが機能していると思います。両方のサーバーでまったく同じコードを実行しているので、ステージング サーバーに何かをインストールしたり構成を設定したりしていないことは確かです。
では、CakeEmail に必要なフレームワーク/モジュール/ライブラリは何ですか? それに必要な構成は何ですか?
私はCakePHP 2.3.4で実行しています
ここに私のコードスニペットがあります:
email.php で:
そして、私はこのスタックトレースを取得しています:
例外: メールを送信できませんでした。ファイル: /var/www/MySite/lib/Cake/Network/Email/MailTransport.php 行: 70 トレース: 0 /var/www/MySite/lib/Cake/Network/Email/MailTransport.php(47): MailTransport- >_mail('staging@gmail.c...', 'hsbsv vdbeh lik...', 'hsbsv vdbeh lik...', 'From: MySite...', NULL)
1 /var/www/MySite/lib/Cake/Network/Email/CakeEmail.php(1071): MailTransport->send(オブジェクト(CakeEmail))
2 /var/www/MySite/app/Model/Notification.php(238): CakeEmail->send('hsbsv vdbeh lik...')
3 [内部関数]: Notification->afterSave(true, Array)
4 /var/www/MySite/lib/Cake/Event/CakeEventManager.php(246): call_user_func_array(配列、配列)
5 /var/www/MySite/lib/Cake/Model/Model.php(1772): CakeEventManager->dispatch(Object(CakeEvent))
6 /var/www/MySite/app/Controller/CommentsController.php(160): Model->save(配列)
7 [内部関数]: CommentsController->add()
8 /var/www/MySite/lib/Cake/Controller/Controller.php(486): ReflectionMethod->invokeArgs(Object(CommentsController), Array)
9 /var/www/MySite/lib/Cake/Routing/Dispatcher.php(187): Controller->invokeAction(Object(CakeRequest))
10 /var/www/MySite/lib/Cake/Routing/Dispatcher.php(162): Dispatcher->_invoke(Object(CommentsController), Object(CakeRequest), Object(CakeResponse))
11 /var/www/MySite/app/webroot/index.php(109): Dispatcher->dispatch(Object(CakeRequest), Object(CakeResponse))
12 {メイン}
cakephp - CakeEmail が機能しない
これは私の controller の 1 つでの cakephp メソッドの私のコードですが、アカウントにメールが来ていません。これについて本当に助けが必要です。
変数を印刷$cc
すると、配列の出力が得られますが、メールが正常に送信されたかどうかを知る方法がわかりません。
メールアカウントにメールが来ていないので、メールが正しく送信されていないか、私のコードに何らかのバグがあると思われます。
cakephp - viewVars で 2 つの変数を渡す方法
viewVars でビュー $message[0] と $message[1] に 2 つの変数を送信する必要があります。これをどのように達成しますか?助けてください。
cakephp - CakeEmail 添付ファイル
アプリケーションの開発に CakePHP を使用しています。今、添付ファイル「ics」を含む電子メールを送信しようとしていますが、「ファイルが見つかりません...」というエラーが表示されました。これまでに行ったことは次のとおりです。
cakephp - HTML コンテンツを追加した後、Icalendar .ics に問題が表示されない
icalendar でこの問題が発生しました。gmail、yahoo、aoutlook.com に送信したときに、添付ファイルと確認ボタンが表示されません。HTMLメッセージとマルチパート/混合ヘッダーなしで以前は機能していました。メールを受信すると、カレンダーのテキストのみが表示され、認識されません。コンテンツ タイプ: マルチパート/混合。境界="982f8d486c3cbed0e28b314e7a433c3d"
前もって感謝します。
php - すべてのメール送信前に関数を呼び出すにはどうすればよいですか?
受信者に基づいてテキストが動的に変化する約 50 の異なる電子メール テンプレートがあります。考えられるすべてのケースに対して異なるテンプレートを作成し、数十の異なるコントローラー ファイルに同様のロジックを含めるのではなく、各テンプレート内にケースの切り替えを含め、ケースを決定する変数をすべてのメールに適用したいと考えています。
たとえば、典型的なテンプレートは次のようになります。
$case
beforeEmail($to_address)
受信者の電子メールに基づいてケースのすべての計算を行う関数によって設定されます。これらの計算は、すべてのメールで同じです。beforeEmail()
メールが送信されるたびに呼び出されるようにするにはどうすればよいですか? より正確には、関数をどこに配置すればよいでしょうか?beforeEmail()
通常、この種のコードはビュー ファイル コントローラーに貼り付けますが、電子メールのビュー ファイルにはコントローラーがありません。どこかで静的関数を作成しbeforeEmail()
て各ビューファイルで呼び出してみましたが、それは面倒で間違っているようです (ビューファイル内での関数呼び出しと、50 以上のファイルでのコードの重複が残ります)。
編集:$case
レイアウトファイルで変数を設定しようとしましたが、電子メールビューファイルの後にレイアウトが読み込まれることが判明したため、レイアウト内に設定された変数はビューファイルで使用できません。