Email en local avec Codeigniter

a marqué ce sujet comme résolu.

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

+0 -0

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

+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.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

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