既存のスレッドをほぼすべて調べましたが、まだ問題が見つからないため、新しいスレッドを投稿することにしました。
ライブ サーバーで実行しているコードがあり、電子メール機能は問題なく動作しています。これは請負業者によってセットアップされたもので、彼は CakePHP のセットアップ方法に関するドキュメントを残していませんでした。
ライブ サーバーとまったく同じように動作するようにステージング サーバーをセットアップする必要があります。電子メール機能を除いて、すべてが機能していると思います。両方のサーバーでまったく同じコードを実行しているので、ステージング サーバーに何かをインストールしたり構成を設定したりしていないことは確かです。
では、CakeEmail に必要なフレームワーク/モジュール/ライブラリは何ですか? それに必要な構成は何ですか?
私はCakePHP 2.3.4で実行しています
ここに私のコードスニペットがあります:
App::uses('CakeEmail', 'Network/Email');
$emailTest = new CakeEmail('default');
$emailTest->to('MyEmail@gmail.com');
$emailTest->from(array('me@example.com' => 'My Site'));
$emailTest->subject('About');
try {
$emailTest->send('Hey');
}
catch (SocketException $e) {
echo("Exception: " . $e->getMessage() . "\r\n");
echo("File: " . $e->getFile() . "\r\n");
echo("Line: " . $e->getLine() . "\r\n");
echo("Trace: " . $e->getTraceAsString() . "\r\n");
}
email.php で:
public $default = array(
'transport' => 'Mail',
'from' => 'notification@MySite.com',
// 'charset' => 'utf-8',
// 'headerCharset' => 'utf-8',
);
そして、私はこのスタックトレースを取得しています:
例外: メールを送信できませんでした。ファイル: /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 {メイン}