1

My email.php located within config/ folder:

$config['protocol'] = 'smtp';
$config['smtp_host'] = 'smtp.gmail.com';
$config['smtp_port'] = '465';
$config['smtp_user'] = 'gmfernandes@[domain].com';
$config['smtp_pass'] = '[password]';
$config['mailtype'] = 'html';
$config['charset'] = 'utf-8';
$config['wordwrap'] = TRUE;
$config['newline'] = "\r\n";

My email() method:

public function email()
{
    $from_name = $this->input->post('nome_email');
    $from_email = $this->input->post('email_email');
    $to = 'gmfernandes@[domain].com';
    $subject = 'Testing';
    $message = $this->input->post('proposta_email');

    $this->email->from($from_email, $from_name);
    $this->email->to($to);
    $this->email->subject($subject);
    $this->email->message($message);

    if ($this->email->send()) {
        echo 'Sent!';
    } else {
        echo $this->email->print_debugger();
    }

    die;
}

My autoload.php:

$autoload['libraries'] = array('database', 'session', 'form_validation', 'email');

I am trying to make this work. I have spent hours looking for a solution but NONE of them helped me. Removed and installed sendmail and postfix several times, tried to use default configuration but nothing. It doesn't work with me.

Now, the message that is shown:

hello: F

The following SMTP error was encountered: F
Unable to send email using PHP SMTP. Your server might not be configured to send mail using this method.

User-Agent: CodeIgniter
Date: Mon, 11 Jan 2016 18:11:54 -0200
From: "Gabriel" <mfgabriel@[domain].com>
Return-Path: <mfgabriel@[domain].com>
To: gmfernandes@[domain].com
Subject: =?UTF-8?Q?Testing?=
Reply-To: "mfgabriel@[domain].com" <mfgabriel@[domain].com>
X-Sender: mfgabriel@[domain].com
X-Mailer: CodeIgniter
X-Priority: 3 (Normal)
Message-ID: <56940c8a3846e@[domain].com>
Mime-Version: 1.0

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

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

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

Teste


--B_ALT_56940c8a384c8
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Teste

--B_ALT_56940c8a384c8--

What to do?

Edit #1

After chaning my config.php file to ssl://smtp.gmail.com, a new and bigger error message has shown. Above the User Agent: CodeIgniter:

220 smtp.gmail.com ESMTP g130sm55276890qkb.28 - gsmtp

hello: 250-smtp.gmail.com at your service, [2804:14d:2c81:17a2:f82f:e7e9:68ec:6230]
250-SIZE 35882577
250-8BITMIME
250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8

Failed to authenticate password. Error: 534-5.7.14 Please log in via your web browser and 534-5.7.14 then try again. 534-5.7.14 Learn more at 534 5.7.14 https://support.google.com/mail/answer/78754 g130sm55276890qkb.28 - gsmtp
Unable to send email using PHP SMTP. Your server might not be configured to send mail using this method.
GabrielMF
  • 31
  • 1
  • 6

4 Answers4

1

You use the port 465, which means SSL.

$config['smtp_host'] = 'ssl://smtp.gmail.com';
schellingerht
  • 5,726
  • 2
  • 28
  • 56
1
function Email()
{
        parent::Controller();   
            $this->load->library('email');
}

function index()
{
    $config['protocol']    = 'smtp';
    $config['smtp_host']    = 'ssl://smtp.gmail.com';
    $config['smtp_port']    = '465';
    $config['smtp_timeout'] = '7';
    $config['smtp_user']    = 'mygmail@gmail.com';
    $config['smtp_pass']    = '*******';
    $config['charset']    = 'utf-8';
    $config['newline']    = "\r\n";
    $config['mailtype'] = 'text'; // or html
    $config['validation'] = TRUE; // bool whether to validate email or not      

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


    $this->email->from('mygmail@gmail.com', 'myname');
    $this->email->to('target@gmail.com'); 

    $this->email->subject('Email Test');
    $this->email->message('Testing the email class.');  

    $this->email->send();

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

     $this->load->view('email_view');

   }

Check forum: Sending email with gmail smtp with codeigniter email library

Check this answer: Sending email Codeigniter Error

Community
  • 1
  • 1
Eugine Joseph
  • 1,552
  • 3
  • 18
  • 40
0

Done. It worked. I had to allow access from less secure apps in My Account > Sign-in & security configurations and do as Schellingerht said.

GabrielMF
  • 31
  • 1
  • 6
0

Try with ssl://smtp.googlemail.com instead of smtp.gmail.com

$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->from('your@example.com', 'Your Name');
$this->email->to('someone@example.com');

$this->email->subject('Email Test');
$this->email->message('Testing the email class.');

$this->email->send();