0
votes

I am trying to send an email using CodeIgniter's email library. This is the code that I have written.

        $email_config = array(
            'protocol'  => 'smtp',
            'smtp_host' => ' ssl://smtp.gmail.com',
            'smtp_port' => '465',
            'smtp_user' => '[email protected]',
            'smtp_pass' => '**********',
            'mailtype'  => 'html',
            'newline'   => "\r\n",
            'charset' => 'iso-8859-1',
            "wordwrap" => true
        );

    $this->CI->load->library('email', $email_config);
    $this->CI->email->from('[email protected]', 'invoice');
    $this->CI->email->to('[email protected]', "User");
    $this->CI->email->subject('Invoice');
    $this->CI->email->message('Test');
    $this->CI->email->send();
    echo $this->CI->email->print_debugger();

Error: This is the error that I am getting.

The following SMTP error was encountered: 0 php_network_getaddresses: getaddrinfo failed: Name or service not known 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: Sun, 21 Jun 2015 05:52:56 +0600 From: "invoice" Return-Path: To: [email protected] Subject: =?iso-8859-1?Q?Invoice?= Reply-To: "[email protected]" X-Sender: [email protected] X-Mailer: CodeIgniter X-Priority: 3 (Normal) Message-ID: <[email protected]> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="B_ALT_5585fcd8c643b" This is a multi-part message in MIME format. Your email application may not support this format. --B_ALT_5585fcd8c643b Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Test --B_ALT_5585fcd8c643b Content-Type: text/html; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Test --B_ALT_5585fcd8c643b-- 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: Sun, 21 Jun 2015 05:52:56 +0600 From: "invoice" Return-Path: To: [email protected] Subject: =?iso-8859-1?Q?Invoice?= Reply-To: "[email protected]" X-Sender: [email protected] X-Mailer: CodeIgniter X-Priority: 3 (Normal) Message-ID: <[email protected]> Mime-Version: 1.0

Content-Type: multipart/alternative; boundary="B_ALT_5585fcd8c643b"

This is a multi-part message in MIME format. Your email application may not support this format.

--B_ALT_5585fcd8c643b Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit

Test

--B_ALT_5585fcd8c643b Content-Type: text/html; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable

Test

--B_ALT_5585fcd8c643b--

Question: I used to be able to send emails. Then I reinstalled my os and lamp server and now I cannot. What am I doing wrong?

1
did you try 'sendmail' ?Fawzan
why are you suggesting another library?odbhut.shei.chhele
I am not asking you to use another library, instead of smtp, try send mail. Just a matter of changing so e params in your config.Fawzan
How can I use gmail then?odbhut.shei.chhele
I will put it as an answer.Fawzan

1 Answers

2
votes

I use sendmail for email in CI. Before using send mail you have to do some configurations in CI.

First, go to system/libraries/Email.php and change the following

class CI_Email {

  var   $useragent      = "CodeIgniter";
  var   $mailpath       = "/usr/sbin/sendmail"; // Sendmail path
  var   $protocol       = "sendmail";   // mail/sendmail/smtp
  var   $smtp_host      = "mail.blah-blah.com";     // SMTP Server.  


  .....
}

Then I make a method to send emails.

public function send_mail($email, $subject, $message){
        //$this->load->library( 'email' );
        $this->email->from( '[email protected]', 'blah-blah.com' );
        $this->email->to( $email);
        $this->email->subject( $subject );
        $this->email->message( $message );
        $this->email->send();

        echo $this->email->print_debugger();

    }

That's all. you can use the send_mail method to send emails now.