Ошибка отправки почты в codeigniter

Я пытаюсь отправить письмо через форму электронной почты Codeigniter локальный. Ниже мой код.

$config = Array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.googlemail.com',
'smtp_port' => 465,
'smtp_user' => 'shreesaipratik1@gmail.com',
'smtp_pass' => 'xxxxxx',
);
$this->load->library('email', $config);
$this->email->set_newline("\r\n");
$this->email->from('shreesaipratik1@gmail.com');
$this->email->to('shreesaipratik@gmail.com');
$this->email->subject('Subject');
$this->email->message('Sample message');
if (!$this->email->send())
{
show_error($this->email->print_debugger());
}
else
{
echo 'Your e-mail has been sent!';
}

Я получаю следующие ошибки: —

Невозможно отправить письмо с помощью PHP mail (). Ваш сервер может быть не настроен для отправки почты с использованием этого метода. &

Серьезность: Предупреждение

Сообщение: mail (): не удалось подключиться к почтовому серверу через порт «localhost» 25, проверить настройки «SMTP» и «smtp_port» в php.ini или использовать ini_set ()

Имя файла: library / Email.php

Номер строки: 1896

Backtrace:

Файл: D: \ xampp \ htdocs \ ajax \ application \ controllers \ angular_http.php
Линия: 29
Функция: отправить

Файл: D: \ xampp \ htdocs \ ajax \ index.php
Линия: 315
Функция: require_once

1

Решение

Я думаю, вы еще не настроили почтовый сервер. если вы используете XAMPP, то вы можете легко отправлять почту с localhost.

Например, вы можете настроить (с учетом «C: \ xampp» в качестве установочного каталога) C: \ xampp \ php \ php.ini и c: \ xampp \ sendmail \ sendmail.ini для отправки почты gmail.

в C: \ xampp \ php \ php.ini найдите extension = php_openssl.dll и удалите точку с запятой в начале этой строки, чтобы заставить SSL работать для gmail для localhost.

в файле php.ini найдите [mail function] и измените

SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = my-gmail-id@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

Теперь откройте C: \ xampp \ sendmail \ sendmail.ini. Замените весь существующий код в sendmail.ini следующим кодом

[sendmail]

smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=my-gmail-id@gmail.com
auth_password=my-gmail-password
force_sender=my-gmail-id@gmail.com

Во-первых, убедитесь, что в вашей установке PHP есть поддержка SSL (ищите раздел «openssl» в выводе phpinfo ()).

Вы можете установить следующие настройки в вашем PHP.ini:

ini_set("SMTP","ssl://smtp.gmail.com");
ini_set("smtp_port","465");

Пожалуйста, придумайте стек, который вы используете на localhost, если вы не используете XAMPP или WAMP.

0

Другие решения

Единственное, что вы делаете неправильно, это загрузка библиотеки электронной почты и некоторые параметры конфигурации:
вы загружаете библиотеку электронной почты как $this->load->library('email', $config);,

который неправильно так что загрузи его как $this->load->library('email'); и инициализировать его как $this->email->initialize($config); см. ниже полный код:

$config = Array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.googlemail.com',
'smtp_port' => 465,
'smtp_user' => 'your@mail.com', // change it to yours
'smtp_pass' => 'yourpassword', // change it to yours
'mailtype' => 'text',// it can be text or html
'wordwrap' => TRUE,
'newline' => "\r\n",
'charset' => 'utf-8',
);
$this->load->library('email');
$this->email->initialize($config);
$this->email->from('your@mail.com',"Your Name");
$this->email->to('receiver@mail.com');
$this->email->subject('Subject');
$this->email->message('Sample message');
if (!$this->email->send())
{
show_error($this->email->print_debugger());
}
else
{
echo 'Your e-mail has been sent!';
}
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector