2012-05-04 3 views
1

J'ai des problèmes pour envoyer un mail avec cakephp2, je sais que je peux envoyer des emails parce que j'ai mon postfix configuré, et je peux envoyer des e-mails avec une ligne de commande ou php. Alors s'il vous plaît, pouvez-vous m'envoyer un exemple de cakephp2 envoyant des emails.envoyer un e-mail avec cakephp2

Ceci est le message d'erreur

email non valide: " vous @ localhost " Erreur: une erreur interne.

J'ai aussi essayé le ssl via gmail et ça ne marche pas non plus, et ça me fait vraiment mal.

merci les gars

par le chemin, j'essaie l'exemple exact de cette url http://book.cakephp.org/2.0/en/core-utility-libraries/email.html

+1

Il est un exemple dans la [documentation CakePHP] (http://book.cakephp.org/2.0/en/core-utility-libraries/email.html#configuration) en utilisant Gmail, n'échouer comme bien ? – Nasreddine

+1

Votre adresse e-mail ne contient pas de domaine (par exemple .com), essayez d'ajouter un domaine. – pbond

+0

Cela fonctionne déjà, j'ai configuré mon serveur postfix et redirigé vers gmail, l'exemple gmail de cakephp2 n'a pas fonctionné pour moi. Quoi qu'il en soit, merci les gars =) – silgon

Répondre

0

Votre app/config/Email.

class EmailConfig { public $gmail = array( 'port' => '465', 'timeout' => '300', 'host' => 'ssl://smtp.gmail.com', 'username' => '<your_email>@gmail.com', 'password' => '<you_password>', 'transport' => 'Smtp' ); }

votre fichier = app/contrôleur/appController.php insérer cette fonction

public function sendEmail($type, $options){ 
    try { 
     $Email = new CakeEmail($type); 
     $Email->config($options); 
     $Email->template = "email_confirmation"; 
     $Email->emailFormat('html'); 
     //$this->idCrudRash = $options; 
     $Email->send(); 
    } catch (SocketException $e) { 
     die('Erro ao enviar email:'. $e->getMessage()); 
     $this->log(sprintf('Erro ao enviar email: %s', $e->getMessage())); 

    } 
} 

pour l'utilisateur: app/contrôleur/contato.php

$options = array( 'emailFormat' => 'html', 'from' => array( $config['email_noanswer'] => $config['site_name'] ), 'subject' => 'Confirmação de Cadastro', 'to' => $this->request->data['User']['email'], //'template' => 'default', 'template' => 'email_confirmation', 'viewVars' => array( 'title_for_layout' => 'Confirmação de Email ' . $config['site_name'], 'name' => $this->request->data['User']['name'], 'email' => $this->request->data['User']['email'], //'cpf' => base64_encode($this->request->data['User']['cpf']), 'site_name' => $config['site_name'], ), ); $this->sendEmail('gmail', $options);

0

Dans votre fichier email.php, s'il vous plaît supprimer la valeur par défaut 'de', il remplace votre param passé.

public $default = array(
    'transport' => 'Mail', 
    'from' => '[email protected]', // remove this line 
    ... 
);