Мой email.php
находится в папке config/
:
$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";
Мой метод email()
:
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;
}
Мой autoload.php
:
$autoload['libraries'] = array('database', 'session', 'form_validation', 'email');
Я пытаюсь сделать эту работу. Я потратил часы на поиски решения, но никто из них не помог мне. Несколько раз удаляли и устанавливали sendmail
и postfix
, пытались использовать конфигурацию по умолчанию, но ничего. Это не работает со мной.
Теперь отображается сообщение:
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--
Что делать?
Редактировать # 1
После редактирования моего файла config.php
на ssl://smtp.gmail.com
появилось новое и более ssl://smtp.gmail.com
сообщение об ошибке. Выше 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.
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'] = '[email protected]';
$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('[email protected]', 'myname');
$this->email->to('[email protected]');
$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');
}
Проверка форума: отправка электронной почты с помощью gmail smtp с помощью электронной почты codeigniter
Проверьте этот ответ: Отправка электронной почты Codeigniter Error
Попробуйте использовать ssl://smtp.googlemail.com
вместо 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('[email protected]', 'Your Name');
$this->email->to('[email protected]');
$this->email->subject('Email Test');
$this->email->message('Testing the email class.');
$this->email->send();
Вы используете порт 465, что означает SSL.
$config['smtp_host'] = 'ssl://smtp.gmail.com';
Готово. Это сработало. Я должен был разрешить доступ к менее безопасным приложениям в разделе "Моя учетная запись"> "Конфигурации входа и защиты" и сделать так, как сказал Шеллингерт.
ssl://smtp.googlemail.com