问题
I know that question has a couple of duplicates but I think I've tried them all.
My mail is never send calling it with the following settings:
$config = Array(
'protocol' => 'smtp',
'smtp_host' => 'smtp.gmail.com',
//'smtp_host' => 'localhost',
'smtp_port' => 465,
'mailpath' => 'C:\xampp\sendmail', // tried without sendmail
'smtp_user' => 'correct email',
'smtp_pass' => 'correct pass',
'mailtype' => 'html',
'charset' => 'utf-8',
'starttls' => true, // changing makes no difference
'smtp_crypto' =>'ssl', // tried without ssl on port 25 as wel, google not responding
'_smtp_auth' => true // tried removing this
);
$this->load->library('email', $config);
$this->email->from('tkd.tongil.neeroeteren@gmail.com', 'Tong-Il Neeroeteren'); //verzender (magic e-cards)
$this->email->to($email); //ontvanger
$this->email->subject($subject); //onderwerp toevoegen
//inhoud van het bericht met activatiecode als link.
$this->email->message($message);
if (!$this->email->send()) {
$errors = $this->email->print_debugger();
return false;
} else {
return true;
}
The message in $errors is always the same:
220 smtp.gmail.com ESMTP h11sm1190535ljh.15 - gsmtp
<br /><pre>hello: 250-smtp.gmail.com at your service, [2a02:1810:9d16:bf00:eda1:6150:23ed:ba70]
250-SIZE 35882577
250-8BITMIME
250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8
</pre>Failed to authenticate password. Error: 535-5.7.8 Username and Password not accepted. Learn more at
535 5.7.8 https://support.google.com/mail/?p=BadCredentials h11sm1190535ljh.15 - gsmtp
<br /><pre>from: 530-5.5.1 Authentication Required. Learn more at
530 5.5.1 https://support.google.com/mail/?p=WantAuthError h11sm1190535ljh.15 - gsmtp
</pre>The following SMTP error was encountered: 530-5.5.1 Authentication Required. Learn more at
530 5.5.1 https://support.google.com/mail/?p=WantAuthError h11sm1190535ljh.15 - gsmtp
<br /><pre>to: 530-5.5.1 Authentication Required. Learn more at
530 5.5.1 https://support.google.com/mail/?p=WantAuthError h11sm1190535ljh.15 - gsmtp
</pre>The following SMTP error was encountered: 530-5.5.1 Authentication Required. Learn more at
530 5.5.1 https://support.google.com/mail/?p=WantAuthError h11sm1190535ljh.15 - gsmtp
<br /><pre>data: 530-5.5.1 Authentication Required. Learn more at
530 5.5.1 https://support.google.com/mail/?p=WantAuthError h11sm1190535ljh.15 - gsmtp
</pre>The following SMTP error was encountered: 530-5.5.1 Authentication Required. Learn more at
530 5.5.1 https://support.google.com/mail/?p=WantAuthError h11sm1190535ljh.15 - gsmtp
<br />502 5.5.1 Unrecognized command. h11sm1190535ljh.15 - gsmtp
<br />The following SMTP error was encountered: 502 5.5.1 Unrecognized command. h11sm1190535ljh.15 - gsmtp
<br />Unable to send email using PHP SMTP. Your server might not be configured to send mail using this method.<br /><pre>User-Agent: CodeIgniter
Date: Mon, 10 Oct 2016 19:34:18 +0200
From: "Tong-Il Neeroeteren" <tkd.tongil.neeroeteren@gmail.com>
Return-Path: <tkd.tongil.neeroeteren@gmail.com>
To: robbie.vercammen@gmail.com
Subject: =?utf-8?Q?Activeer_uw_account?=
Reply-To: "tkd.tongil.neeroeteren@gmail.com" <tkd.tongil.neeroeteren@gmail.com>
X-Sender: tkd.tongil.neeroeteren@gmail.com
X-Mailer: CodeIgniter
X-Priority: 3 (Normal)
Message-ID: <57fbd11ad5a9f@gmail.com>
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="B_ALT_57fbd11ad5b41"
This is a multi-part message in MIME format.
Your email application may not support this format.
--B_ALT_57fbd11ad5b41
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
// Too much info
--B_ALT_57fbd11ad5b41
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable
// Too much info
--B_ALT_57fbd11ad5b41--</pre>
My php.ini
[mail function]
SMTP=ssl://smtp.gmail.com
smtp_port=465
sendmail_from = tkd.tongil.neeroeteren@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
mail.add_x_header=On
And my sendmail.ini
smtp_server=smtp.gmail.com
smtp_port=465
smtp_ssl=auto
auth_username=correct email
auth_password=correct password
force_sender=tkd.tongil.neeroeteren@gmail.com
I have enabled less secure access and tried the unlock captcha method to no avail. How do I get this working for localhost.
I'm also at a loss at how to configure this once it's been deployed to my hosted domain. Any help would be appreciated
回答1:
I found the answer...
This is what I ended up using
$config = Array(
"protocol" => "smtp",
"smtp_host" => "smtp.gmail.com",
//"smtp_host" => "localhost",
"smtp_port" => 587,
"mailpath" => "C:\\xampp\\sendmail",
"smtp_user" => "",
"smtp_pass" => "",
"mailtype" => "html",
"charset" => "ISO-8859-1",
"starttls" => true,
"smtp_crypto" =>"tls",
"smpt_ssl" => "auto",
"send_multipart"=> false
);
$this->load->library('email', $config);
$this->email->set_newline("\r\n");
// rest remains the same
I believe $this->email->set_newline("\r\n");
was the missing link. Why there was no other error message except authentication failed... we shall never know.
来源:https://stackoverflow.com/questions/39983110/codeigniter-send-mail-with-gmail-smtp-on-localhost