Bonjour,

[Mon Objectif : m'envoyer un mail de test]
Je suis en train de suivre le tutoriel d'envoi d'emails de Grafikart et après avoir épuisé mes ressources de solutions et avoir épluché les autres sujets concernant ce problême, je me tourne vers vous pour clarifier un peu la chose.

voici mon erreur principale :

Could not send email.
Error: An Internal Error Has Occurred.

j'utilise donc Email config de Cake

email.php :

class EmailConfig {
    public $default = array(
        'transport' => 'Mail',
        'from' => 'MonEmail@gmail.com',
        'charset' => 'utf-8',
        'headerCharset' => 'utf-8',
    );
}

et j'envoi le tout grâce à ma fonction send() de mon Modele 'Envoi'

Envoi.php :

<?php
App::uses('AppModel', 'Model');
     class Envoi extends AppModel{
        public $useTable = false;
        public function send($d){
            App::uses('CakeEmail', 'Network/Email');
            $mail = new CakeEmail('default');
            $mail->to('MonEmail@gmail.com')
            ->from('MonEmail@gmail.com')
            ->subject('Envoi:: Site');
            return $mail->send('Message de Test');

        }
     }
?>

j'ai mis en place sendmail dans mon WampSeveur grâce à un autre tuto Grafikart

j'ai changé mon fichier php.ini pour ajouter le sendmail_path = "C:\Wamp\sendmail\sendmail.exe"

mais Grafikart ne dit pas comment configurer le fichier sendmail.ini

j'ai essayé plusieurs solutions sans succès.

Mon objectif à terme est de passer par mon propre SMTP pour envoyer mes emails mais pour l'instant je voudrais juste m'envoyer un mail sur ma propre boite mail en passsant par smtp.gmail.com

comment bien configuré sendmail ?

sendmail.ini :

[sendmail]
smtp_server=smtp.gmail.com
smtp_port=465
default_domain=gmail.com
error_logfile=error.log
auth_username=MonEmail@gmail.com
auth_password=taurapasmonmotdepasse
pop3_server=
pop3_username=
pop3_password=
force_sender=MonEmail@gmail.com
force_recipient=
hostname=

4 réponses


Tu arrives envoyé un mail avec la fonction mail dans un simple script php ?

Comment faire exactement ?

j'ai mis ça dans un fichier send.php

<?php
$to = 'MonEmail@gmail.com';
$subject = 'Testing sendmail.exe';
$message = 'Hi, you just received an email using sendmail!';
$headers = 'From: sender@gmail.com' . "\r\n" .
            'Reply-To: sender@gmail.com' . "\r\n" .
            'MIME-Version: 1.0' . "\r\n" .
            'Content-type: text/html; charset=iso-8859-1' . "\r\n" .
            'X-Mailer: PHP/' . phpversion();
if(mail($to, $subject, $message, $headers))
    echo "Email sent";
else
    echo "Email sending failed";
?>

je l'ai ouvert avec chrome mais il me retourne tout le code
je l'ai ouvert avec internet explorer, il a bugé
je l'ai ouvert avec Firefox , il m'a sorti une page blanche

Hello, essaye de faire ca:

class EmailConfig {
    public $default = array(
        'transport' => 'Mail',
        'from' => 'MonEmail@gmail.com', // Met un e-mail valid, mais je pense que tu l'a fait. Aussi, je ne le mettrai 
//pas car il est dans le code suivant, plus bas
        'charset' => 'utf-8',
        'headerCharset' => 'utf-8' // Enlève la virgule, person j'ai commenté ceci, mais c'est pas définif
    );
}

Par contre je mettrai ca dans le EnvoisController

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

            $mail = new CakeEmail(); /pas besoin de mettre default, par defaut il prend, ... defaut
            $mail->to('MonEmail@gmail.com')
            ->from('MonEmail@gmail.com')
            ->subject('Envoi:: Site')
            ->send('Message de Test');

J'ai fais comme, ca et ca marche.

Par contre j'ai le meme probleme que toi, que je n'arrive pas résoudre quand je met

$mail = new CakeEmail('smtp')

car je veux faire l'envoi en smtp, et je n'y arrive toujours pas :o|

salut ! merci de t'as réponse mais cela ne fonctionne toujours pas....
effectivement j'utilise une adresse valide et non MonEmail@gmail.com :) j'ai oublié de le préciser...
j'ai fait ce que tu m'a dit

App::uses('CakeEmail', 'Network/Email');
            $mail = new CakeEmail();
            $mail->to('tacher.maxime@gmail.com')->from('tacher.maxime@gmail.com')->subject('Envoi:: Site')->send('Message de Test');

et j'ai enlevé la virgule dans email.php

mais j'ai toujours la même erreur :

Could not send email.
Error: An Internal Error Has Occurred.

.

puis-je savoir ce que tu as mis précisément dans ton sendmail.ini ?

et également savoir ce que tu as mis aussi dans la partie [mail function] du fichier

php.ini

qui correspond à ça :

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25
; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = MonEmail@gmail.com
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = "C:\wamp\sendmail\sendmail.exe"
; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =
; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header = On
; Log all mail() calls including the full path of the script, line #, to address and headers
;mail.log =

je crois que mon erreur vient de là mais je ne sais plus quoi mettre après avoir tenter casiment toutes les possibilités

je suis sous Windows 8.1 pour information ( je sais pas si ça change grand chose mais je le précise quand même )

Cordialement

Maxime