2013-09-23 4 views
1

J'utilise codeigniter pour mon application web et j'utilise la fonctionnalité e-mail du codeigniter pour envoyer des e-mails. Mais j'ai eu l'erreur suivante quand j'ai essayé d'envoyer l'email.Fonctionnalité e-mail d'allumage par code

Impossible de trouver le transport socket « ssl » - Vous avez oublié de lui permettre lors de la configuration PHP

Ce code est i utilisé pour obtenir la fonctionnalité.

$config['protocol'] = "smtp"; 
    $config['smtp_host'] = "ssl://smtp.googlemail.com"; 
    $config['smtp_port'] = 465; 
    $config['smtp_user'] = "[email protected]"; 
    $config['smtp_pass'] = "xxxxxx"; 

    $this->load->library('email'); 
    $this->email->initialize($config); 
    $this->email->set_newline("\r\n"); 

    $this->email->from('[email protected]','Sample'); 
    $this->email->to('[email protected]'); 
    $this->email->subject('temperary Email'); 
    $this->email->message('This is a sample message'); 

    if ($this->email->send()) { 
     echo 'Your email was sent, dude.'; 
    } else { 
     show_error($this->email->print_debugger()); 
    } 

Quel est le problème avec cela?

Merci ..

+0

Le message d'erreur vous donne un bon point de départ. Essayez de vérifier que vous avez SSL sur la machine, et que c'est activé en PHP. – Mike

+0

Votre code est OK, mais votre configuration php ne connaît pas le protocole 'ssl: //'. Assurez-vous que c'est activé. – Maerlyn

+1

Comme le message l'a dit ... avez-vous activé 'extension = php_openssl.dll' dans votre php.ini? Quelle plate-forme êtes-vous? –

Répondre

2

OpenSSL doivent être activés.

un coup d'oeil ici http://www.devcha.com/2010/01/php-fsockopen-unable-to-connect-ssl.html

Ou vous pouvez charger le paramètre dans le tableau:

$config = Array(
    'protocol' => 'smtp', 
    'smtp_host' => 'ssl://smtp.googlemail.com', 
    'smtp_port' => 465, 
    'smtp_user' => 'xxx', 
    'smtp_pass' => 'xxx', 
    'mailtype' => 'html', 
    'charset' => 'iso-8859-1' 
); 
$this->load->library('email', $config); 
$this->email->set_newline("\r\n"); 

// Set to, from, message, etc. 

$result = $this->email->send(); 

Cela fonctionne pour moi

+1

Merci shuvo. J'ai dû configurer le php.ini et activer le module apache ssl. Ensuite, il a travaillé – Nadeeshaan

+1

si travaillé accepter la réponse. :) –

0

J'ai eu quelques problèmes « fous » en utilisant la valeur par défaut de CI's bibliothèque d'e-mails pour envoyer des e-mails via des serveurs SMTP authentifiés SSL/TLS. J'ai fini par utiliser PHPMailer à la place.