2011-12-01 12 views
5

W Cake 1.3, EmailComponent zrobił to, co powinien. Nowa klasa Cake Email w wersji 2.0 okazała się być frustrująca ... Brak wysłanych e-maili, brak błędów .... niejasna dokumentacja ...CakePHP 2.0: frustracja CakeEmail

Próbowałem wszystkich możliwych wariantów, wypróbowałem to z moim SMTP, Mailem() i Gmail, nic się nie dzieje. Niniejszym my latest attempt:

Controller snippet:

//on top of page 
App::uses('CakeEmail', 'Network/Email'); 


//in method 
$email = new CakeEmail(); 
$email->template('contact_email') 
->emailFormat('text') 
->to('[email protected]') 
->from('[email protected]') 
->send(); 

Email.php Config file:

class EmailConfig {

//It also does not work with a constructor 

public $gmail = array(
    'host' => 'ssl://smtp.gmail.com', 
    'port' => 465, 
    'username' => '[email protected]', 
    'password' => '***', 
    'transport' => 'Smtp' 
); 

Może ktoś proszę post kod WORKING dla Klasy E-mail. Wielkie dzięki

+0

"Nic się nie dzieje" nie jest prawdziwym opisem błędu. Czy debugowanie jest ustawione na 2? – burzum

+0

Ustawienie Debug ustawiono na 2. Po przesłaniu formularza otrzymam wiadomość o powodzeniu ..... e-mail nigdy nie jest wysyłany. – ChrisDK

+2

-1. Proszę być nieco bardziej profesjonalnym z przyszłymi pytaniami; niekonstruktywna krytyka, CAPS i daj mi działający kod nie stanowią dobrych pytań. –

Odpowiedz

9

myślę trzeba załadować config z config/email.php wyraźnie, że nie jest ładowany automatycznie, nie nawet domyślny config:

$email = new CakeEmail(); 
$email->config('default'); 

//or in constructor:: 
$email = new CakeEmail('default'); 
+1

WRESZCIE, dzięki za informację zwrotną, zadziałało! Happy newyear – ChrisDK

+0

Już nie od wersji CakePHP 2.7, w której "domyślna" konfiguracja jest ładowana automatycznie. –

1

To jest mój plik konfiguracyjny poczty e-mail. I nie zrobił robić żadnych zmian tutaj

class EmailConfig { 

    public $default = array(
     'transport' => 'Mail', 
     'from' => 'Admin <[email protected]>',  
     'charset' => 'utf-8', 
     'headerCharset' => 'utf-8', 
    ); 

} 

ten sposób mogę wysłać pocztę

$email = new CakeEmail(); 

$result = $email->template('welcome') 
       ->emailFormat('text') 
       ->to($NewUser['email']) 
       ->from('[email protected]') 
       ->send(); 
var_dump($result); 
+0

Dzięki Web Developer. Zrobiłem wszystko, co powiedziałeś, widzę zrzut i dodano poprawne parametry dla mojego serwera pocztowego (to działa ze starym komponentem poczty), wciąż nic nie jest wysyłane. Czy możesz wysłać e-mail z tym skryptem? Nie otrzymuję komunikatów o błędach. – ChrisDK

+0

Tak, jestem w stanie wysłać go – aWebDeveloper

+0

czy wysyłasz na localhosta – aWebDeveloper

3

moim zdaniem należy to wykorzystać:

$email = new CakeEmail('gmail');