2013-05-12 24 views
0

我試圖用ajax方法發送CakeEmail的簡單電子郵件。我假設ajax調用是問題,如果我有其中的電子郵件功能,它將返回400個錯誤的請求。否則,它工作正常。在ajax控制器方法中使用CakeEmail需要做什麼特殊配置?或者這是不可能的?以ajax方法使用CakeEmail

只是想經營一個標準CakeEmail,沒有什麼不尋常的:

$email = new CakeEmail(); 
     $email->config = $this->ses; 
     $email->from('[email protected]',Configure::read('Site.title')) 
      ->to($user['User']['email']) 
      ->subject(__d('croogo', '[%s] Discount Approved', Configure::read('Site.title'))) 
      ->template('Users.apply_approve') 
      ->theme($this->theme) 
      ->viewVars(array('user' => $user)) 
      ->send(); 

SES是在AppController中配置:

public $ses = array(
    'host' => 'ssl://email-smtp.us-east-1.amazonaws.com', 
    'port' => 25, 
    'username' => '****', 
    'password' => '****', 
    'transport' => 'Smtp', 
    'tls' => true 
); 

我在其他領域使用這種(阿賈克斯外請求)在常規形式的職位,它工作正常。

UPDATE 經過了Apache日誌(感謝鮑里斯拉夫),和它說:

PHP Fatal error: Call to a member function viewVars() on a non-object in... 

所以看起來像Ajax請求沒有viewVars其中CakeEmail使用:

->viewVars(array('user' => $user)) 
+0

請顯示一些代碼!沒有代碼,我們只會猜測你想要做什麼。閱讀[faq]。 *注意*你可以編輯你的問題,並通過[編輯]鏈接添加代碼 – thaJeztah 2013-05-12 20:27:52

+0

@Michael它不應該是CakeEmail初始化,但如果可能是電子郵件類無法連接到它的「中等」。你使用什麼配置。向我們提供更多信息 - 您如何處理AJAX請求,您使用的是哪種電子郵件配置,還請檢查Web服務器日誌以查看「400錯誤請求」涉及的內容。 – 2013-05-13 09:12:32

+0

@Michael,首先嚐試使用正常請求來處理電子郵件,然後切換到AJAX。它會使調試更容易一些! – 2013-05-13 10:14:36

回答

0

刪除

->theme($this->theme) 

修好了。主題變量在ajax佈局中不可用。