Проблем с класа за електронна поща при CodeIgniter

Dizasterr

Registered
Здравейте! Сега се пробвам да напиша система за изпращане на писма чрез CodeIgniter като използвам SMTP сървара на gmail. Проблемът е, че ми дава няколко грешки, като някои от тях са в самият клас. Ето кода и грешките:
Код:
<?php

	Class Email extends Controller {
			
		function __construct() {
				
                    parent::Controller();
			
		}	
			
            function index() {
			
		$config = array(

                    'protocol' => 'smtp',
                    'smtp_host' => 'ssl://smtp.googlemail.com',
                    'smtp_port' => 465,
                    'smtp_user' => '',
                    'smtp_pass' => ''

		);
				
                $this->load->library('email', $config);
		$this->email->set_newline("\r\n");
		
		$this->email->from('mymail@gmail.com', 'My name');
		$this->email->to('mymail@gmail.com');
		$this->email->subject('This is an email test');		
		$this->email->message('It is working. Great!');
		
		$path = $this->config->item('server_root');
	//	$file = $path . '/ci_day3/attachments/yourInfo.txt';
		
	//	$this->email->attach($file);
		
		if($this->email->send()) {

			echo 'Your email was sent, fool.';

                        }else{

			show_error($this->email->print_debugger());
		}
				
		}
		
		}

Ето грешките, които открива:
Код:
A PHP Error was encountered

Severity: Warning

Message: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.googlemail.com:465 (An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full. )

Filename: libraries/Email.php

Line Number: 1652

A PHP Error was encountered

Severity: Warning

Message: fwrite() expects parameter 1 to be resource, boolean given

Filename: libraries/Email.php

Line Number: 1795

A PHP Error was encountered

Severity: Warning

Message: fgets() expects parameter 1 to be resource, boolean given

Filename: libraries/Email.php

Line Number: 1818

A PHP Error was encountered

Severity: Warning

Message: fwrite() expects parameter 1 to be resource, boolean given

Filename: libraries/Email.php

Line Number: 1795

A PHP Error was encountered

Severity: Warning

Message: fgets() expects parameter 1 to be resource, boolean given

Filename: libraries/Email.php

Line Number: 1818

A PHP Error was encountered

Severity: Warning

Message: fwrite() expects parameter 1 to be resource, boolean given

Filename: libraries/Email.php

Line Number: 1795

A PHP Error was encountered

Severity: Warning

Message: fgets() expects parameter 1 to be resource, boolean given

Filename: libraries/Email.php

Line Number: 1818

A PHP Error was encountered

Severity: Warning

Message: fwrite() expects parameter 1 to be resource, boolean given

Filename: libraries/Email.php

Line Number: 1795

A PHP Error was encountered

Severity: Warning

Message: fgets() expects parameter 1 to be resource, boolean given

Filename: libraries/Email.php

Line Number: 1818

A PHP Error was encountered

Severity: Warning

Message: fwrite() expects parameter 1 to be resource, boolean given

Filename: libraries/Email.php

Line Number: 1795

A PHP Error was encountered

Severity: Warning

Message: fwrite() expects parameter 1 to be resource, boolean given

Filename: libraries/Email.php

Line Number: 1795

A PHP Error was encountered

Severity: Warning

Message: fgets() expects parameter 1 to be resource, boolean given

Filename: libraries/Email.php

Line Number: 1818

A PHP Error was encountered

Severity: Warning

Message: Cannot modify header information - headers already sent by (output started at D:\xampp\htdocs\codeigniter\system\libraries\Exceptions.php:166)

Filename: codeigniter/Common.php

Line Number: 360

An Error Was Encountered
The following SMTP error was encountered: 10055 An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full. 
Unable to send data: AUTH LOGIN
Failed to send AUTH LOGIN command. Error: 
Unable to send data: MAIL FROM:

from: 
The following SMTP error was encountered: 
Unable to send data: RCPT TO:
to: 
The following SMTP error was encountered: 
Unable to send data: DATA
data: 
The following SMTP error was encountered: 
Unable to send data: User-Agent: CodeIgniter Date: Sat, 7 Aug 2010 11:39:25 +0300 From: "My name" Return-Path: To: mymail@gmail.com Subject: =?utf-8?Q?This_is_an_email_test?= Reply-To: "mymail@gmail.com" X-Sender: mymail@gmail.com X-Mailer: CodeIgniter X-Priority: 3 (Normal) Message-ID: <4c5d1bbd75aa7@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit It is working. Great! 
Unable to send data: .

The following SMTP error was encountered: 
Unable to send email using PHP SMTP. Your server might not be configured to send mail using this method.
User-Agent: CodeIgniter
Date: Sat, 7 Aug 2010 11:39:25 +0300
From: "My name" 
Return-Path: 
To: mymail@gmail.com
Subject: =?utf-8?Q?This_is_an_email_test?=
Reply-To: "mymail@gmail.com" 
X-Sender: mymail@gmail.com
X-Mailer: CodeIgniter
X-Priority: 3 (Normal)
Message-ID: <4c5d1bbd75aa7@gmail.com>
Mime-Version: 1.0


Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

It is working. Great!
Опитвам се да реша проблема от един ден, но не успявам. Благодаря предварително.
 
Прави се така:

Код:
$config = array(
            "protocol"  =>  "smtp",
            "smtp_host" =>  "ssl://smtp.gmail.com",
            "smtp_port" =>  465,
            "smtp_user" =>  "емейл@gmail.com",
            "smtp_pass" =>  "парола"
        );

        $this->load->library('email', $config);
        $this->email->set_newline("\r\n");
        $this->email->from("емейл@gmail.com", "Име");
        $this->email->to("емайл–до-кого@mail.bg");
        $this->email->subject("Subject");

        $this->email->message("alabala raboti!");

        if($this->email->send()) {
            echo "OK";
        } else {
            show_error($this->email->print_debugger());
            return false;
        }
 
gamena007 каза:
Прави се така:

Код:
$config = array(
            "protocol"  =>  "smtp",
            "smtp_host" =>  "ssl://smtp.gmail.com",
            "smtp_port" =>  465,
            "smtp_user" =>  "емейл@gmail.com",
            "smtp_pass" =>  "парола"
        );

        $this->load->library('email', $config);
        $this->email->set_newline("\r\n");
        $this->email->from("емейл@gmail.com", "Име");
        $this->email->to("емайл–до-кого@mail.bg");
        $this->email->subject("Subject");

        $this->email->message("alabala raboti!");

        if($this->email->send()) {
            echo "OK";
        } else {
            show_error($this->email->print_debugger());
            return false;
        }
И моят код работи, но съм забравил да прибавя класа от autoload.php файла. Сега не може да се свърже с SMTP сървара.
Код:
A PHP Error was encountered

Severity: Warning

Message: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set()

Filename: libraries/Email.php

Line Number: 1519
 
Трябва да си инсталираш мейл сървър на компютъра и ще проработи. Буквално той изпраща инфото до gmail
 
Имам Mozilla Thunderbird, но преди малко като променя настройките в php.ini файла на порт 465 и хост smto.gmail.com ми зарежда страницата без да я показва(само пише зараждане и не спира).
 
Когато променя порта на 587 ми изписва това:
Код:
A PHP Error was encountered

Severity: Warning

Message: mail() [function.mail]: SMTP server response: 530 5.7.0 Must issue a STARTTLS command first. s34sm1514980bkk.1

Filename: libraries/Email.php

Line Number: 1519
 

Back
Горе