2015-01-19 4 views
6

Я пытаюсь отправить почту с моего CodeIgniter проекта от моего локального хоста, но он всегда показывает ошибку, как это:Отправка электронной почты Codeigniter Ошибка

220 mx.google.com ESMTP pp9sm11498734pbb.65 - gsmtp 

hello: 250-mx.google.com at your service, [202.43.95.33] 
250-SIZE 35882577 
250-8BITMIME 
250-AUTH LOGIN PLAIN XOAUTH XOAUTH2 PLAIN-CLIENTTOKEN 
250-ENHANCEDSTATUSCODES 
250-PIPELINING 
250-CHUNKING 
250 SMTPUTF8 
Failed to authenticate password. Error: 535-5.7.8 Username and Password not accepted. Learn more at 535 5.7.8 http://support.google.com/mail/bin/answer.py?answer=14257 pp9sm11498734pbb.65 - gsmtp 
from: 530-5.5.1 Authentication Required. Learn more at 
530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 pp9sm11498734pbb.65 - gsmtp 
The following SMTP error was encountered: 530-5.5.1 Authentication Required. Learn more at 530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 pp9sm11498734pbb.65 - gsmtp 
to: 530-5.5.1 Authentication Required. Learn more at 
530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 pp9sm11498734pbb.65 - gsmtp 
The following SMTP error was encountered: 530-5.5.1 Authentication Required. Learn more at 530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 pp9sm11498734pbb.65 - gsmtp 
data: 530-5.5.1 Authentication Required. Learn more at 
530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 pp9sm11498734pbb.65 - gsmtp 
The following SMTP error was encountered: 530-5.5.1 Authentication Required. Learn more at 530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 pp9sm11498734pbb.65 - gsmtp 
502 5.5.1 Unrecognized command. pp9sm11498734pbb.65 - gsmtp 
The following SMTP error was encountered: 502 5.5.1 Unrecognized command. pp9sm11498734pbb.65 - gsmtp 
Unable to send email using PHP SMTP. Your server might not be configured to send mail using this method. 
User-Agent: CodeIgniter 
Date: Mon, 19 Jan 2015 12:49:08 +0100 
From: "andhika" <[email protected]> 
Return-Path: <[email protected]> 
To: [email protected] 
Subject: =?utf-8?Q?test?= 
Reply-To: "[email protected]" <[email protected]> 
X-Sender: [email protected] 
X-Mailer: CodeIgniter 
X-Priority: 3 (Normal) 
Message-ID: <[email protected]> 
Mime-Version: 1.0 


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

world 

Это мой контроллер:

$this->load->library('email'); 
    $config = array(
       'protocol' => 'smtp', 
       'smtp_host' => 'ssl://smtp.googlemail.com', 
       'smtp_user' => '[email protected]', 
       'smtp_pass' => 'youpassword', 
       'smtp_port' => '465' 
       ); 
    $this->email->initialize($config); 
    $this->email->set_newline('\r\n'); 

    $this->email->from('[email protected]', 'andhika'); 
    $this->email->to('[email protected]'); 
    $this->email->subject('test'); 
    $this->email->message('world'); 


    if ($this->email->send()){ 
     echo 'Your e-mail has been sent'; 
    }   
    else{ 
     show_error($this->email->print_debugger()); 
    } 

Это в моей настройке php.ini: extension = php_openssl.dll

Какой ответ?

Большое спасибо ...

ответ

2
$config = Array(
    'protocol' => 'smtp', 
    'smtp_host' => 'ssl://smtp.googlemail.com', 
    'smtp_port' => 465, 
    'smtp_user' => 'username', 
    'smtp_pass' => 'password', 
    'mailtype' => 'html', 
    'charset' => 'iso-8859-1' 
); 
$this->load->library('email', $config); 
$this->email->set_newline("\r\n"); 

$result = $this->email->send(); 

Forum

stackoverflow

Вы можете посмотреть на этой Mailgun. Он выглядит легко доступным и безопасным.

+0

есть ли способ, посредством которого я могу хэшировать или скрывать свой пароль smtp в конфигурации. Мы не хотим использовать простой текстовый пароль. – Saurabh

0

Отправка электронной почты с локальным-хостом с CodeIgniter:

Если вы используете wampp/XAMPP вам нужно настроить электронную почту по умолчанию и имя пользователя в посыле файл почта ини и файл иня PHP

Локальный хост большую часть времени не позволяет отправлять почту, если вы не настроили функции ниже, даже если вы настроили электронную почту в configingiter config.

Вот как вы можете настроить отправить почту на локальном YOU TUBE уроке я нашел, чтобы помочь мне отправить электронную почту на локальном хосте https://www.youtube.com/watch?v=TO7MfDcM-Ho

xammp/WAMP только для Windows

папку PHP перейти к php.ini найти на линии 1142 раскомментируйте

; sendmail_path = "\" C: \ Xampp \ Sendmail \ sendmail.exe \ "-t"

в

sendmail_path = "\" C: \ Xampp \ Sendmail \ sendmail.exe \ "-t"

Sendmail папка: sendmail.ini файл

Добавить Ваши данные

строка 14: smtp_server = gmail.ком hostserver

линия 18: smtp_port = 465 или 587

и на линии 46 и 47 вам нужно добавить имя пользователя и

passwordauth_username = [email protected]

auth_password = demo

Как только все это будет сделано, вы сможете настроить свою конфигурацию почтового кода, а затем отправить почту. До тех пор, пока sendmail.ini и php.ini внесли изменения в xampp/wampp

1

Если вы используете gmail, ваша учетная запись gmail должна быть изменена, чтобы разрешить «доступ для менее безопасных приложений».

Информация из Gmail

доступа Изменения учетной записи для менее защищенных приложений
Чтобы сохранить учетные записи пользователей Служб Google безопасные, мы можем блокировать менее безопасные приложения от доступа учетных записей Google Apps. Как пользователь Служб Google, вы увидите «неправильный пароль» сообщение об ошибке при попытки входа в Если это так, то у вас есть два варианта:.

Вариант 1: Обновление до более безопасного приложения, которое использует самый актуальный меры безопасности. Все продукты Google, такие как Gmail, используют последние меры безопасности .

Вариант 2: измените настройки, чтобы обеспечить менее безопасные приложения для доступа к вашей учетной записи. Мы не рекомендуем эту опцию, так как она может помочь кому-то войти в ваш аккаунт. Если вы все равно хотите разрешить доступ, выполните следующие действия. Перейдите в раздел «Меньше защищенных приложений» в разделе «Моя учетная запись». Рядом с «Доступ для менее безопасных приложений » выберите «Включить».
(Примечание для пользователей Google Apps: этот параметр равен , если ваш администратор заблокировал менее защищенную учетную запись приложения .) Если вы все еще не можете войти в свою учетную запись, ошибка « 10» может быть вызвана другой причина.

1

В случае, если кто-то интересно, я обнаружил, что с помощью одинарные кавычки при установке newline, такие как

$this->email->set_newline('\r\n'); 

Выдает ошибку пароля.Она нуждается в двойные кавычки:

$this->email->set_newline("\r\n"); 

Или это может быть инициализированы в $config массив с двойными кавычками:

$config = array('newline' => "\r\n"); 
0

Отправка электронной почты в Codeigniter легко вам просто нужно два шага:

Шаг # 1: Создать контроллер

<?php 
class Sendingemail_Controller extends CI_Controller { 
    function __construct() { 
     parent::__construct(); 
     $this->load->library('session'); 
     $this->load->helper('form'); 
    } 
    public function index() { 
     $this->load->helper('form'); 
     $this->load->view('contact_email_form'); 
    } 
    public function send_mail() { 
     $from_email = "[email protected]"; 
     $to_email = $this->input->post('email'); 
     //Load email library 
     $this->load->library('email'); 
     $this->email->from($from_email, 'Identification'); 
     $this->email->to($to_email); 
     $this->email->subject('Send Email Codeigniter'); 
     $this->email->message('The email send using codeigniter library'); 
     //Send mail 
     if($this->email->send()) 
      $this->session->set_flashdata("email_sent","Congragulation Email Send Successfully."); 
     else 
      $this->session->set_flashdata("email_sent","You have encountered an error"); 
     $this->load->view('contact_email_form'); 
    } 
} 
?> 

Шаг №2: Создать вид

<html> 
<head>  
    <title> Send Email Codeigniter </title> 
</head> 
<body> 
<?php 
echo $this->session->flashdata('email_sent'); 
echo form_open('/Sendingemail_Controller/send_mail'); 
?> 
<input type = "email" name = "email" required /> 
<input type = "submit" value = "SEND MAIL"> 
<?php 
echo form_close(); 
?> 
</body> 
</html> 

Шаг 3: Внесите изменения в файл routes.php в приложении/Config/routes.php и добавьте следующую строку в конец файла:

$route['email'] = 'Sendingemail_Controller'; 

Для получения более подробной информации см. source

0

Это работает для меня. Я запускаю окна xampp.

я изменил какую-то часть, как это

php folder go to php.ini find on line 1142 uncomment 

;sendmail_path = "\"C:\Xampp\sendmail\sendmail.exe\" -t" 

в

sendmail_path = "\"C:\Xampp\sendmail\sendmail.exe\" -t" 
sendmail folder: sendmail.ini file 

Добавить свои собственные детали

линия 14: smtp_server=gmail.com hostserver

линия 18: smtp_port=465 or 587 и на линии 46 и 47 вам нужно добавить имя пользователя и

passwordauth_username= ***@***.com //change to yours 

auth_password= ****** ////change to yours 

И я изменил настройку gmail, потому что я использую gmail.

Измените настройки, чтобы менее безопасные приложения могли получить доступ к вашей учетной записи. Мы не рекомендуем этот вариант, потому что это может облегчить кому-то проникновение в вашу учетную запись.

Если вы хотите разрешить доступ в любом случае, выполните следующие действия:

  1. Перейти в раздел «Меньше защищенных приложений» в моем аккаунте.
  2. Рядом с пунктом «Доступ для менее безопасных приложений» выберите «Включить».

(Примечание для пользователей Служб Google: Эта настройка скрыта, если администратор заблокировал менее безопасный доступ приложение учетной записи.)

Если вы все еще не можете войти в свой счет, Ошибка «неверный пароль»

Смежные вопросы