Bonjour à tous !
sa fais un petit moment que je bloque sur mon site, car il est impossible d'envoyer des email
Voici donc mon controller

<?
public function felicitation(){

    App::uses('AppController', 'Controller');
    App::uses('CakeEmail', 'Network/Email'); 

$email = new CakeEmail('default');
        $email->transport('smtp');
        $email->from('analyse.dossier@ap2sp.org')
                  ->to(['dsigner1708@gmail.com' => 'My Website'])
                  ->subject('Contact')                   
                  ->send('test mail'); 

           debug($this->request->data);die();
                }

   }
   ?>

Ensuite mon fichier email.php

<?
public $default = array(
        'transport' => 'SMTP',
        'host' => 'myhost',
        'port' => 465,
        'timeout' => 30,
        'username' => 'domaine@domaine.com',
        'password' => '*********',
        'charset' => 'utf-8',
        'headerCharset' => 'utf-8',

    );
    ?>

malheuresement il affiche l'erreur suivante

Network is unreachable
Error: An Internal Error Has Occurred.

Stack Trace
CORE/Cake/Network/Email/SmtpTransport.php line 155 → CakeSocket->connect()
CORE/Cake/Network/Email/SmtpTransport.php line 95 → SmtpTransport->_connect()
CORE/Cake/Network/Email/CakeEmail.php line 1173 → SmtpTransport->send(CakeEmail)
APP/Controller/OnlinesController.php line 114 → CakeEmail->send(string)
[internal function] → OnlinesController->felicitation()
CORE/Cake/Controller/Controller.php line 491 → ReflectionMethod->invokeArgs(OnlinesController, array)
CORE/Cake/Routing/Dispatcher.php line 193 → Controller->invokeAction(CakeRequest)
CORE/Cake/Routing/Dispatcher.php line 167 → Dispatcher->_invoke(OnlinesController, CakeRequest)
APP/webroot/index.php line 111 → Dispatcher->dispatch(CakeRequest, CakeResponse)

Merci d'avance pour le temps pris à lire mon message....

10 réponses


Bonsoir.
Ton principal problème est que tu ne charges pas les classes correctement.
Les App::uses, n'ont rien à faire dans une fonction, tu devrais plutôt avoir quelque chose du genre :

<?php
App::uses('AppController', 'Controller');
App::uses('CakeEmail', 'Network/Email');

class ContactController extends AppController {

    public function felicitation()
    {
        $email = new CakeEmail('default');
        $email->transport('smtp');
        $email
            ->from('analyse.dossier@ap2sp.org')
            ->to(['dsigner1708@gmail.com' => 'My Website'])
            ->subject('Contact')
            ->send('test mail');
    }

}

Si après ça tu as malgrès tout toujours un problème, ça peut venir de plusieurs choses, comme par exemple le fait que tu reçoives les email en SPAM, ou un problème de configuration.

Merci de me repondre si rapidement.
J'ai appliqué les modifications, mais l'erreur ne change pas...

J'ai bien l'impression que tu as inversé ton from et ton to pour la forme en tableau.

je ne comprend pas, peux tu être plus explicite ?

<?php
App::uses('AppController', 'Controller');
App::uses('CakeEmail', 'Network/Email');

class ContactController extends AppController {

    public function felicitation()
    {
        $email = new CakeEmail('default');
        $email->transport('smtp');
        $email
            ->from(['analyse.dossier@ap2sp.org' => 'My Website'])
            ->to('dsigner1708@gmail.com')
            ->subject('Contact')
            ->send('test mail');
    }

}

en fait, j'essaie d'envoyer un mail depuis mon site qui est marquer dans le from en esperant avoir bien compris ce que vous vouliez dire...

j'ai essayé un plugin "PHPMailer" et voici l'erreur que je reçoit

     2017-10-05 11:48:35    SERVER -> CLIENT: 220 smtp.gmail.com ESMTP b30sm15742902ede.1 - gsmtp 
    2017-10-05 11:48:35 CLIENT -> SERVER: EHLO analyse.oukaley.ap2sp.org 
    2017-10-05 11:48:35 SERVER -> CLIENT: 250-smtp.gmail.com at your service, [213.246.62.66] 250-SIZE 35882577 250-8BITMIME 250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-CHUNKING 250 SMTPUTF8 
    2017-10-05 11:48:35 CLIENT -> SERVER: AUTH LOGIN 
    2017-10-05 11:48:35 SERVER -> CLIENT: 334 VXNlcm5hbWU6 
    2017-10-05 11:48:35 CLIENT -> SERVER: Z25hZ29hbGJlcm15MTk2MEBnbWFpbC5jb20= 
    2017-10-05 11:48:35 SERVER -> CLIENT: 334 UGFzc3dvcmQ6 
    2017-10-05 11:48:35 CLIENT -> SERVER: cmllbmFmYWlyZWRlMDA3 
    2017-10-05 11:48:36 SERVER -> CLIENT: 534-5.7.14 Please log in via your web browser and 534-5.7.14 then try again. 534-5.7.14 Learn more at 534 5.7.14 https://support.google.com/mail/answer/78754 b30sm15742902ede.1 - gsmtp 
    2017-10-05 11:48:36 SMTP ERROR: Password command failed: 534-5.7.14 Please log in via your web browser and 534-5.7.14 then try again. 534-5.7.14 Learn more at 534 5.7.14 https://support.google.com/mail/answer/78754 b30sm15742902ede.1 - gsmtp 
    2017-10-05 11:48:36 CLIENT -> SERVER: QUIT 
    2017-10-05 11:48:36 SERVER -> CLIENT: 221 2.0.0 closing connection b30sm15742902ede.1 - gsmtp SMTP connect() failed 

Quelqu'un aurait il une idée ?

Ton erreur est assez explicite, ton mot de passe semble incorrecte. C'est possible que tu aies à ajouter une application à ton compte Google.

Est-ce que les protocoles POP et IMAP sont activés dans les paramètres de ton compte GMAIL ?

Merci pour vos réponses.
@Kareylo le mot de passe est le bon, maintenant quand vous parlez d'ajouter une application j'avoue que je ne vois pas trop.

@Lartak les protocoles POP et IMAP s'activent comment (j'avoue que c'est la première fois que j'utilise PHPMailer)