Bonjour à tous,

J'ai suivit le tutoriel de Grafikart pour le formulaire de contact sur CakePHP (https://www.youtube.com/watch?v=1pFw3lLt4Ks&t=19s).
J'ai essayer de cherche sa configuration de WampServer, et j'ai donc suivit ce tuto : http://www.copier-coller.com/envoyer-des-mails-en-local-avec-wamp/

Malheureusement je n'arrive toujours pas à envoyer un mail... Si quelqu'un à une idée je suis preneur ! Merci d'avance !

Controller : ContactController.php

<?php 
class ContactController extends AppController{

    function index(){
        if($this->request->is('post')){
            $this->Contact->send($this->request->data['Contact']);
        }
    }
}
?>

Modèle : Contact.php

<?php 
class Contact extends AppModel{

    public $useTable = false;

    public function send($dd){

        app::uses('CakeEmail', 'Network/Email');
        $mail = new CakeEmail();
        $mail->to('distributeursdeplateaux@gmail.com')
                ->from('distributeursdeplateaux@gmail.com')
                ->subject('Contact :: site');

                return $mail->send('Salut ça va ?');
    }

} ?>

Page : index.ctp

<h2>Contacter l'administrateur du site</h2>

 <table id="tablecontact" cellpadding="10" position="absolute">
<?php   echo $this->Form->create('Contact');?>
   <tr id="trcontact">
        <td>Votre nom : </td>
        <td><?php echo $this->Form->input('name', array('label' => ""));?></td>
   </tr>

   <tr id="trcontact">
        <td>Votre email : </td>
        <td><?php echo $this->Form->input('email', array('label' => ""));?></td>
   </tr>

   <tr id="trcontact">
        <td>Votre message : </td>
        <td><?php echo $this->Form->input('content', array('label' => "", "type"=>"textarea"));?></td>
   </tr>

   <tr id="trcontact">
     <td></td>
     <td><?php echo $this->Form->end('Envoyer'); ?></td>
   </tr>
</table>

email.php

class EmailConfig {

    // public $default = array(
    //  'transport' => 'Mail',
    //  'from' => 'distributeursdeplateaux@gmail.com',
    //  //'charset' => 'utf-8',
    //  //'headerCharset' => 'utf-8',
    // );

    public $smtp = array(
        'transport' => 'Smtp',
        'from' => array('site@localhost' => 'My Site'),
        'host' => 'localhost',
        'port' => 465,
        'timeout' => 30,
        'username' => 'distributeursdeplateaux@gmail.com',
        'password' => 'password',
        'client' => null,
        'log' => false,
        //'charset' => 'utf-8',
        //'headerCharset' => 'utf-8',
    );

}

Merci d'avance de votre aide !!

3 réponses


Lartak
Réponse acceptée

Bonjour.
Il te faut préciser que tu veux utiliser la configuration smtp, car si tu ne le précises pas, le framework utilisera la configuration default, il te faut donc faire :

$mail = new CakeEmail('smtp');

Bonjour Lartak.
Ca fonctionne ! Merci beaucoup.

Agréable journée à vous !

De rien, merci de même.