Вопрос по email, php, smtp – mediatemple - не могу отправить письмо используя codeigniter

0

Я не могу отправлять электронные письма, используя mediatemple в codeigniter. Я проверил пароль электронной почты и хост smtp, и они верны.

Это ошибка:

Severity: Notice

Message: fwrite() [function.fwrite]: send of 12 bytes failed with errno=10054 An existing connection was forcibly closed by the remote host.

Filename: libraries/Email.php

Line Number: 1846

Это мой код: Я заменил sxxxxx.gridserver.com на мой правильный smtp.

function _sendEmail($from,$fromname,$to,$subject,$message){
            $config = array(
            'protocol' => 'smtp',
            'smtp_host' => 'sxxxxx.gridserver.com',
            'smtp_port' => 465,
            'smtp_user' => '[email protected]',
            'smtp_pass' => 'mypass'
        );


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

        $this->email->from($from,$fromname);
        $this->email->to($to);
        $this->email->subject($subject);
        $this->email->message($message);
        $this->email->send();
    }

Любая помощь будет оценена.

Edit : I have fixed this problem using port 25.

Вы можете использовать его на локальной машине saravanabawa
Если вы подключаетесь через SSL и оно отклоняет соединение, возможно, что вы не установили / включили / не настроили SSL правильно на вашем сервере. Какой твойphpinfo() выглядит как? Seabass
SSL поддерживается, включен. user1217380

Ваш Ответ

2   ответа
0
'smtp_crypto'   => 'ssl',

0

Вам нужно инициализировать конфиг, см.документация codeigniter для класса электронной почты.

Вот мой пример, который хорошо работает ...

    function send_email($attributes) {

        $this->load->library('email');

        $this->email->set_newline("\r\n");

        $config['protocol'] = 'smtp';
        $config['smtp_host'] = 'host';
        $config['smtp_port'] = '465';
        $config['smtp_user'] = '[email protected]';
        $config['smtp_from_name'] = 'FROM NAME';
        $config['smtp_pass'] = 'XXX';
        $config['wordwrap'] = TRUE;
        $config['newline'] = "\r\n";
        $config['mailtype'] = 'html';                       

        $this->email->initialize($config);

        $this->email->from($config['smtp_user'], $config['smtp_from_name']);
        $this->email->to($attributes['to']);
        $this->email->cc($attributes['cc']);
        $this->email->bcc($attributes['cc']);
        $this->email->subject($attributes['subject']);

        $this->email->message($attributes['message']);

        if($this->email->send()) {
            return true;        
        } else {
            return false;
        }       

}
Исправлена проблема. Порт 456 предназначен только для ssl. Мне нужно было использовать 25.В любом случае спасибо за вашу помощь. user1217380
Код, который у меня работает, работает с gmail, но не с mediatemple. Он как-то связан с mediatemple. Я также пробовал ваш код, но получил ту же ошибку. user1217380
Я думаю, вам нужно связаться с Mediatemplate по поводу ошибки, кажется, что есть проблема с хостом smtp. Возможно, есть какая-то функция безопасности, которая мешает вам отправлять почту.

Похожие вопросы