2013-09-23 8 views
1

Я использую codeigniter для своего веб-приложения, и я использую функции электронной почты codeigniter для отправки электронной почты. Но при попытке отправить электронное письмо произошла ошибка.Функциональность почтового ящика кода

Не удалось найти сокет транспорта «SSL» - Вы забыли включить его при настройке PHP

Это код, который я использовал, чтобы получить функциональность.

$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()); 
    } 

Что не так?

Спасибо ..

+0

Сообщение об ошибке дает вам хорошее место для начала. Попробуйте убедиться, что у вас есть SSL на машине, и что он включен в PHP. – Mike

+0

Ваш код в порядке, но ваша конфигурация php не знает о протоколе 'ssl: //'. Убедитесь, что он включен. – Maerlyn

+1

Как говорится в сообщении ... вы активировали 'extension = php_openssl.dll' в своем php.ini? На какой платформе вы работаете? –

ответ

2

Открытый ssl должен быть включен.

посмотрите здесь http://www.devcha.com/2010/01/php-fsockopen-unable-to-connect-ssl.html

Или вы можете загрузить параметр в массиве:

$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(); 

Это работает для меня

+1

Спасибо, Шуво. Мне пришлось настроить php.ini и включить модуль apache ssl. Затем он работал – Nadeeshaan

+1

, если работал, согласился ответить. :) –

0

У меня были некоторые «сумасшедшие» проблемы с использованием CI's по умолчанию электронной почты для отправки электронной почты через SMTP-серверы с проверкой подлинности SSL/TLS. Вместо этого я использовал PHPMailer.

Смежные вопросы