2014-02-09 5 views
0

Я пошел за одним учебником для отправки почты с php.Почта не отправляется на php

public function send_credentials($beneficiary_user){ 

    $this->load->library(‘email’); 
    $email_config = Array(
     'protocol' => 'smtp', 
     'smtp_host' => 'ssl://smtp.googlemail.com', 
     'smtp_port' => '465', 
     'smtp_user' => '[email protected]', 
     'smtp_pass' => 'apptesting', 
     'mailtype' => 'html', 
     'starttls' => true, 
     'newline' => "\r\n" 
    ); 
    $this->email->from('[email protected]', 'invoice'); 
    $this->email->to('[email protected]'); 
    $this->email->subject('Invoice'); 
    $this->email->message('Test'); 

    $this->email->send(); 

} 

Каковы другие настройки я должен сделать, чтобы сделать его работу * После запуска эхо $ this-> email-> print_debugger() ;. Я получил *

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

User-Agent: CodeIgniter 
    Date: Sun, 9 Feb 2014 14:58:44 +0530 
    From: "invoice" 
    Return-Path: 
    Reply-To: "[email protected]" 
    X-Sender: [email protected] 
    X-Mailer: CodeIgniter 
    X-Priority: 3 (Normal) 
    Message-ID: <[email protected]> 
    Mime-Version: 1.0 
    Content-Type: multipart/alternative; boundary="B_ALT_52f74a4c41e88" 
     =?utf-8?Q?Invoice?= 
     This is a multi-part message in MIME format. 
     Your email application may not support this format. 
    --B_ALT_52f74a4c41e88 
    Content-Type: text/plain; charset=utf-8 
    Content-Transfer-Encoding: 8bit 
    Test 
    --B_ALT_52f74a4c41e88 
    Content-Type: text/html; charset=utf-8 
    Content-Transfer-Encoding: quoted-printable 
    Test 
    --B_ALT_52f74a4c41e88--

+1

Можете ли вы описать ошибки, которые вы получаете, как для консоли, так и в вашем журнале ошибок? –

+3

Вы ничего не делаете с массивом '$ email_config'. Вы должны передать его в электронную почту, когда вы его создаете. – Mark

+0

вызов '$ this-> email-> initialize ($ config);' для инициализации настраиваемых переменных конфигурации, а также для передачи в конструкторе '$ this-> load-> library ('email', $ config); ' –

ответ

3

Поскольку мы нашли ответ на свой вопрос в комментариях, это казалось разумным писать ответ.

Проблема заключалась в том, что вы ничего не делали с массивом конфигурации электронной почты ($email_config). Хотя вы могли или не могли иметь правильные настройки, определенные там, они ничего не значили, поскольку они не использовались должным образом.

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

$email_config = Array(
    'protocol' => 'smtp', 
    'smtp_host' => 'ssl://smtp.googlemail.com', 
    'smtp_port' => '465', 
    'smtp_user' => '[email protected]', 
    'smtp_pass' => 'apptesting', 
    'mailtype' => 'html', 
    'starttls' => true, 
    'newline' => "\r\n" 
); 

$this->load->library('email', $email_config); 

Пожалуйста, обратите внимание, что это будет просто решить проблему с вашим подходом, я не могу проверить достоверность ваших настроек/access credentials.

EDIT:

Согласно предложению jtheman, я решил копнуть немного глубже. Вы можете посмотреть на это https://stackoverflow.com/a/17274496/2788532.

EDIT # 2:

Вы можете получить доступ полезные сообщения об ошибках по электронной почте класса КИ, используя следующий код (после того, как вы пытаетесь отправить по электронной почте, конечно):

<?php echo $this->email->print_debugger(); ?> 
+0

Исправить! Другими подходами могут быть: 1. попытка smtp.gmail.com, 2. порт 587, 3. проверить ваш брандмауэр и т. Д. – jtheman

+0

Я уже пробовал это. Но я не знаю, где я делаю ошибку. – user3289150

+1

@ user3289150 См. Мою вторую редакцию о отлаживая ваш код. – Mark

0

Просто добавьте этот в начале функции, где вы пишете отправить на e-mail код

$config = Array(
      'protocol' => 'sendmail', 
      'mailtype' => 'html', 
      'charset' => 'utf-8', 
      'wordwrap' => TRUE 

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

Email перешлем но ошибка та же ошибка покажет

0

вы можете попробовать это

  1. Открытая система/библиотеки/email.php

  2. Редактировать

    вар $ новой строки = "\ п"; var $ crlf = "\ n";

    к

    переменных $ новой строки = "\ г \ п"; var $ crlf = "\ r \ n";

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