Email en local avec Codeigniter

a marqué ce sujet comme résolu.
Auteur du sujet

Bonjour les Zesteurs

Je suis en train d’apprendre à utiliser Codeigniter et je me heurte à un problème depuis un bon moment. J’utilise WampServer et j’ai configuré ce dernier pour pouvoir tester l’envoi de mail en local avec Fake Sendmail et les intercepter avec Maildev. Tout ce petit monde fonctionne parfaitement lorsque j’utilise tout bêtement la fonction mail() de php mais impossible d’envoyer un email avec Codeigniter. C’est donc un problème de configuration de ce dernier qui pose problème.

La fonction du contrôleur:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
public function contact()
    {
        $this->load->helper("form");
        $this->load->library('form_validation');

        $data["title"] = "Contact";
        $data["site"] = "CI blog - ";

        $this->load->view('common/header', $data);

        if($this->form_validation->run()) {
            $this->load->library('email');
            $this->config->load('email');
            $data["emailsite"] = $this->config->item('emailsite');
            // $this->email->initialize($this->config->item('email'));
            $this->email->from($this->input->post('email'), $this->input->post('nom'));
            $this->email->to($this->config->item('emailsite'));
            $this->email->subject($this->input->post('titre'));
            $this->email->message($this->input->post('message'));
            $this->email->send();

            $this->load->view('site/contact_result', $data);
        } else {
        $this->load->view('site/contact', $data);
        }
        $this->load->view('common/footer', $data);
    }

Le contenu du fichier de config:

1
2
3
4
5
6
7
8
<?php
$config['emailsite'] = "philduweb@webdev.com";
$config['protocol'] = "smtp";
$config['smtp_host'] = "localhost";
$config['smtp_port'] = "1025";
$config['smtp_user'] = "null";
$config['smtp_pass'] = "null";
$config['smtp_crypto'] = "null";

J’ai essayé vraiment beaucoup de choses mais je n’y arrive pas.

Merci de votre aide.

Phil

Édité par philduweb

+0 -0
Auteur du sujet

Salut le fichier de config pour la lib "email" soit "application/config/email.php".

Ce fichier est chargé dans le contrôleur avec:

1
2
<?php
$this->config->load('email');

il permet de passer des paramètres à la librairie "email.

Édité par philduweb

+0 -0
Auteur du sujet

Salut Alors je me répond à moi même mais si ça peut aider un autre Zesteur ;-)

Voici le contenu du fichier "application/config/email.php"

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<?php
/* ====================================== *\
        Configuration email en local
        avec WampServer, fake sendmail
        et maildev
\* ====================================== */

$config['emailsite'] = "philduweb@webdev.com";
$config['protocol'] = "mail";
$config['smtp_host'] = "localhost";
$config['smtp_port'] = "1025";
$config['smtp_user'] = NULL;
$config['smtp_pass'] = NULL;
$config['smtp_crypto'] = NULL;

Je ne sais pas pourquoi il faut passer le protocole à "mail" ?????

Pour le reste, c’est logique :-( , j’envoyais la valeur null dans une chaîne de caractère avec les "".

Le contrôleur était ok :magicien:

Merci quand même et à la prochaine …

Phil

Édité par philduweb

+0 -0

Salut !

Si je ne me trompe, passer le protocole à mail fait justement que PHP va utiliser la fonction mail() de PHP plutôt que de tenter une connexion SMTP dans le cas qui te posait problème  ;)

Fake Sendmail n’est pas vraiment un serveur SMTP, donc impossible de s’y connecter.

Édité par Ymox

Evitez qu’on vous dise de les lire : FAQ PHP et SymfonyTutoriel WAMP • Cliquez 👍 pour dire merci • Marquez vos sujets résolus

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte