L'envoi d'e-mail avec smtp de gmail avec codeigniter e-mail de la bibliothèque
<?php
class Email extends Controller {
function Email()
{
parent::Controller();
$this->load->library('email');
}
function index()
{
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'ssl://smtp.gmail.com';
$config['smtp_port'] = '465';
$config['smtp_timeout'] = '7';
$config['smtp_user'] = '[email protected]';
$config['smtp_pass'] = '*******';
$config['charset'] = 'utf-8';
$config['newline'] = "\r\n";
$config['mailtype'] = 'text'; //or html
$config['validation'] = TRUE; //bool whether to validate email or not
$this->email->initialize($config);
$this->email->from('[email protected]', 'myname');
$this->email->to('[email protected]');
$this->email->subject('Email Test');
$this->email->message('Testing the email class.');
$this->email->send();
echo $this->email->print_debugger();
$this->load->view('email_view');
}
}
J'obtiens cette erreur:
A PHP Error was encountered
Severity: Warning
Message: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.gmail.com:465 (Connection timed out)
Filename: libraries/Email.php
Line Number: 1641
À l'aide de PORT 25/587
J'ai eu cette erreur:
A PHP Error was encountered
Severity: Warning
Message: fsockopen() [function.fsockopen]: SSL operation failed with code 1. OpenSSL Error messages: error:140770FC:SSL routines:func(119):reason(252)
Filename: libraries/Email.php
Line Number: 1641
Je ne veux pas utiliser phpmailer maintenant. (En fait, j'ai essayé d'utiliser phpmailer, mais je n'ai pas réussi).
Comment puis-je résoudre ce problème les gars?
$config['validation'] = TRUE
est faux, la clé de l'index est valider donc, utiliser$config['validate'] = TRUE
Vous devez vous connecter pour publier un commentaire.
De la CodeIgniter Forums
$this->email->set_newline
est entouré de guillemets doubles. c'est très important sinon ça ne fonctionne pas.\n
signifie seulement une nouvelle ligne si elle est dans les guillemets. Dans des guillemets simples, cela signifie que les caractères \n.$result = $this->email->send();
$CI->email->set_newline("\r\n");
ligne. Autres sage, pas de problème de déclaration et l'initialisation de la$config
tableau. De toute évidence, nous devrions permettreextension=php_openssl.dll
Vous devez activer le SSL dans votre configuration PHP. Charger
php.ini
et de trouver une ligne avec les éléments suivants:;extension=php_openssl.dll
Dé-commentez-le. 😀
(par la suppression du point-virgule à partir de la déclaration)
extension=php_openssl.dll
En fonction de l'IC docs (CodeIgniter E-Mail De La Bibliothèque)...
J'ai été en mesure d'obtenir ce travail en mettant tous les paramètres en application/config/email.php.
Puis, dans l'une des méthodes de contrôleur j'ai quelque chose comme:
Aussi, comme les maladies Cérébro écrit, j'ai eu de décommenter cette ligne dans mon php.fichier ini et redémarrez PHP:
Modifier suivantes:
envoyer des courriels en html via codeiginater
Une autre option que j'ai de travail, dans un serveur linux avec Postfix:
Tout d'abord, configurez CI à l'adresse de messagerie de votre serveur de messagerie du système: par exemple, dans
email.php
, par exempleLà la configuration de postfix pour relayer le mail de google (peut-être en fonction de l'adresse de l'expéditeur). Vous aurez probablement besoin de vous mettre l'utilisateur paramètres de mot de passe dans
/etc/postfix/sasl_passwd
(docs)
C'est beaucoup plus simple (et moins fragmente) si vous avez une linux box, déjà configuré pour envoyer certains de ses e-mails sortants pour Google.
Peut-être que votre serveur d'hébergement et serveur de messagerie sont situés au même endroit et que vous n'avez pas besoin d'aller pour l'authentification smtp. Il suffit de garder chaque chose par défaut comme:
ou
cela fonctionne pour moi.
Il peut être ceci:
Erreur lors de l'envoi d'un e-mail avec CodeIgniter