Bonjour a tous et a toutes,
Cela fais un long moment que je cherche une solution fiable et disons "officielle" de configurer l'envoi des mails en local sur wamp, j'ai déja tenté la méthode décrite sur le site grafikart avec "sendmail" mais sans résultat.
J'ai également tenté d'installer des serveurs tels que "free SMTP server" mais ces derniers fonctionnent quand ça leur chante.

j'ai modifié de multitudes de fichiers (tels que php.ini...) au point que wamp ne fonctionne plus.
Le problème est que j'utilise cakephp (j'ai égelement suivi a la lettre les tutos pour l'envoi des mails) mais une phrase renvient sans cesse : "Could not send mail", le problème n'étant pas plus détaillé dans les logs, je ne sais pas si le problème vient de wamp ,de cakephp ou d'une quelconque config mal paramétrée.

Quelles configurations faut-il appliquer sur wamp et cakephp pour que l'envoi soit fonctionnel?

Merci d'avance

7 réponses


B-Art
Réponse acceptée

Salut Nzoway,

Pas besoin de wamp en ligne, ça marche tout à fait bien en locale en tout cas pour moi!! ;)

Etant chez Free, je ne parlerais que pour les utilisateurs de ce FAI mais ça doit fonctionner avec les autres je supposes.

Dans App>Config>email.php:

class EmailConfig {
    public $default = array(
        'host' => 'ssl://smtp.free.fr',
        'port' => 465,
        'from' => 'ton_adresse@free.fr',
        'username' => 'ton_adresse@free.fr',
        'password'  => 'ton_mot_de_passe_de_messagerie',
        'transport' => 'Smtp',
        'timeout'   => 30,
        //'charset' => 'utf-8',
        //'headerCharset' => 'utf-8',
    );

Ici j'ai conserver la variable $default pour définir l'envoi.

On retrouve donc dans le script d'envoi d'email:

//Configuration par défault
                    $CakeEmail = new CakeEmail('default');

Ensuite dans php.ini, faire un Ctrl + F pour retrouver la ligne [mail function] et mettre:

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = smtp.free.fr
; http://php.net/smtp-port
smtp_port = 25
; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = ton_adresse@free.fr
; 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"

S'assurer que Sendmail est désactivé en ajoutant si nécessaire ; devant.

Enfin, toujours pour free, se rendre sur ta page de connection free et activer la gestion du SMTP authentifié pour qu'il puisse "lire" ton mot de passe en clair.

Espérant avoir pu aider!

Bon dév'!

Bonjour,

As-tu dans le SMTP de php.ini (SMTP = localhost) remplacé le localhost par le SMTP de ton FAI (dans mon cas chez free ce serait : smtp.free.fr)
Ensuite en utilisant la fonction mail de ckephp

public $default = array(
    'transport' => 'Mail',
    'from' => 'you@localhost',
    'charset' => 'utf-8',
    'headerCharset' => 'utf-8',
);

Sa devrait fonctionner... enfin chez moi sa fonctionne.

nzoway
Auteur

merci pour ta réponse Gyuki,désolé pour le retard je n'étais pas chez moi.Je crains que j'ai déjà tenté cette solution, je vais tout de même la refaire.
Je te tiens au courant

nzoway
Auteur

Malheureusement le test n'est pas concluant, voici l'erreur que me retourne cakephp, j'ai essayé de décortiquer les logs mais sans résultat :

Pour info je suis en train de suivre la formation de CakePHP : http://www.grafikart.fr/formation/cakephp
Je l'ai suivi a la lettre mais je pense qu'il me manque un élément pour continuer.

A moins que Jonathan me souffle la solution et qu'il m'explique comment il a paramétré wamp pour la fonction mail().

Mais je croyais que pour mettre la fonction mail sur wamp il fallait mettre wamp en ligne ?

nzoway
Auteur

merci pour ton aide, problème résolu et je n'ai pas compris ou je bloquais.
Je n'ai même pas eu à toucher le php.ini (je l'avais réinitialiser précédemment), ce qui est très étrange.

Pour ceux qui sont intéressés, je suis sur sfr et donc je partage les configurations que j'ai appliquées (dans le cas ou certains ont eu le même problème que moi)en suivant les conseils de B-Art:

public $sfr = array(
        'host' => 'smtp-auth.sfr.fr',
        'port' => 587,
        'from' => 'tonadressemail@sfr.fr',
        'username' => 'tonadressemail@sfr.fr',
        'password' => 'motdepasse',
        'transport' => 'Smtp',
        'timeout' => 30
    );

Salut!

En faite c'est pas ton code qui était mauvais, c'est la configuration du smtp auth de ta messagerie...

Si j'ai bien compris, celà sert à activer la autentification SMTP à distance.

Sans celà, free, sfr ou autre FAI ne peux se connecter au serveur smtp pour l'envoi du mail...

Simple souci de config pas évident à trouver, j'avoue!

J'ai galèrer avant d'y arriver! ;)

Bonne journée!