Отправка электронной почты в CodeIgniter через Gmail
Я следую руководству по отправке электронных писем с помощью gmail, однако получаю страницу, которая просто зависает и даже не загружает ошибку. Я использую MAMP, так что это может быть причиной, почему он не работает.
class Email extends CI_Controller{
public function __construct()
{
parent::__construct();
}
function index(){
$config = Array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.googlemail.com',
'smtp_port' => 465,
'smtp_user' => 'email',
'smtp_pass' => 'pass'
);
$this->load->library('email',$config);
$this->email->set_newline("/r/n");
$this->email->from('email', 'George');
$this->email->to('email');
$this->email->subject('hey this is an email');
$this->email->message('this is the content of the email');
if($this->email->send()){
echo 'Your message was sent';
}else{
show_error($this->email->print_debugger());
}
}
}
5 ответов
В вашем php.ini расширение файла uncomment =php_openssl.dll
$config = Array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.googlemail.com',
'smtp_port' => '465',
'smtp_user' => 'someuser@gmail.com',
'smtp_pass' => 'password',
'mailtype' => 'html',
'starttls' => true,
'newline' => "\r\n"
);
$this->load->library('email', config);
$this->email->from('email@gmail.com', 'George');
$this->email->to('email@gmail.com');
$this->email->subject('hey this is an email');
$this->email->message('this is the content of the email');
$this->email->send();
echo $this->email->print_debugger();
Надеюсь, это сработает
MAMP не поставляется с расширением openssl, но вы можете создать его самостоятельно. Подробности смотрите в этом уроке.
Линия, вызывающая проблемы:
$this->email->set_newline("/r/n");
Удалите его и попробуйте отправить письмо.
Я сам сделал это успешно, но вместо этого отправил все значения в config/email.php. Эта часть не должна иметь значения.
Ну, в общем, вы пытаетесь отправить через учетную запись @gmail или свой собственный домен? Если вы пытаетесь пройти через свой собственный домен, вам нужно изменить DNS на соответствующие настройки Google:
Начните с публикации сообщений через стандартные порты smtp и убедитесь, что они работают, используя конфигурацию ниже:
индекс функции () {
$ config = Array ('protocol' => 'smtp', 'smtp_host' => 'smtp.googlemail.com', 'smtp_port' => 25, 'smtp_user' => 'email', 'smtp_pass' => 'pass ');
$ This-> load-> библиотека ('электронная почта',$ конфигурации);
$ this-> email-> from ('email', 'George'); $ This-> email-> к ('электронной почты'); $this->email->subject("эй, это электронная почта"); $ this-> email-> message ("это содержимое письма");
$ This-> email-> отправить (); }
После того, как вы попробовали это, и все это работает, прочитайте это: