2016-02-16 6 views
-2

Я пытаюсь отправить электронное письмо с помощью codeigniter. Есть ли в любом случае я могу отправить сообщение в любом письме, например gmail, yahoo или outlook.com? Это то, что я до сих пор:CodeIgniter email

public function sendmail() 
{ 
    $config['protocol'] = 'sendmail'; 
    $config['mailpath'] = '/usr/sbin/sendmail'; 
    $config['charset'] = 'iso-8859-1'; 
    $config['wordwrap'] = TRUE; 


    $this->load->library('email',$config); // load email library 
    $this->email->set_newline ("\r\n"); 

    $this->email->from('[email protected]', 'sender name'); 
    $this->email->to('[email protected]'); 
    $this->email->subject('Your Subject'); 
    $this->email->message('ed wow sir'); 
    if ($this->email->send()) 
     echo "nasend na!"; 
    else 
     echo $this->email->print_debugger(); 
} 

и он показывает ошибку:

Выход код состояния: 1 Не удалось открыть сокет для Sendmail. Проверьте настройки . Не удалось отправить электронное письмо с помощью PHP Sendmail. Ваш сервер может не настроить отправку почты с помощью этого метода.

ответ

0

любезно проконсультируйтесь с вашим провайдером хостинга для отправки писем. Вы можете проверить с помощью функции почты для проверки почты.

В Codeigniter вместо отправки почты попытайтесь использовать протокол smtp и использовать учетную запись gmail для тестирования.

+0

Ive уже попробовать протокол SMTP и Gmail работает на локальном хосте, но что, если я хочу, чтобы отправить его на Yahoo или мировоззрении, и также до его на мой сервер, но он не работал :( – chamz

+0

что я говорю - это использовать вашу учетную запись gmail как учетные данные smtp и пытаться отправить электронное письмо на yahoo или посмотреть, работает ли она или нет. – karthi

+0

@karthi Вместо того, чтобы создавать несколько ответов, вы отредактируете его, нажав на править ниже вашего ответа. – user4419336

0

Я использую этот код:

пример кода:

$config = Array(
        'protocol' => 'smtp', 
       'smtp_crypto' => 'tls', 
       'smtp_host' => 'xxx', 
       'smtp_port' => 587, 
       'smtp_user' => 'xxx', 
       'smtp_pass' => 'xx', 
       'smtp_timeout' => '5', 
       'smtp_auth' => true, 
        'mailtype' => 'html', 
       'charset' => 'utf-8', 
       'wordwrap' => TRUE, 
       'validate'  => TRUE, 
           'priority'  => 1,      
           'crlf'   => "\r\n", 
           'newline' => "\r\n", 
           'bcc_batch_mode' => FALSE, 
           'bcc_batch_size' => 200 

      ); 

     $this->load->library('email', $config); 
     $this->email->clear(); 
     $this->email->from($from, $fromname); 
     $this->email->to($to); $this->email->set_mailtype("html"); 


     $this->email->subject($subject); 
     $this->email->message($body); 
     if (!$this->email->send()) 
      show_error($this->email->print_debugger()); 
      else 
     echo 'Your e-mail has been sent!'; 
0

Если вы используете локальный вам, возможно, потребуется настроить Sendmail конфигурацию там также

установки

Tutorial Sendmail Backend для XAMPP & WAMP

Когда вам нужно отправить письмо с помощью google

$mail_config = array(
    'protocol' => 'smtp', 
    'smtp_host' => 'ssl://smtp.googlemail.com', 
    'smtp_port' => 465, 
    'smtp_user' => '********', 
    'smtp_pass' => '********', 
    'mailtype' => 'html', 
    'charset' => 'iso-8859-1' 
); 

$this->load->library('email', $mail_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.'); 


if ($this->email->send() == TRUE) { 

    // Redirect to a success page or load a view or some thing 
    redirect('success_page'); 

} else { 
    echo $this->email->print_debugger(); 
    exit; 
} 

Codeigniter Email Class

Yahoo

'smtp_host' => 'ssl://smtp.mail.yahoo.com' 
Смежные вопросы