Intereting Posts
Symfony2 и Submit wit JavaScript: как получить html-контент Вставьте в одну таблицу, обновив другую и загрузив файл Ошибка «Неожиданный T_OBJECT_OPERATOR» в PHP Flesch-Kincaid Readability: улучшить функцию PHP Переименуйте загруженный файл с помощью PHP, но сохраните расширение Несколько шаблонов в одиночной маршрутизации symfony Неустранимая ошибка: класс не найден в AppKernel.php PHP-SDK слишком много перенаправлений Почему этот код pdo :: mysql разбивается на окна? Динамически заменить атрибуты «src» всех тегов <img> (сокращение) PHP OpenID не работает с Google / Yahoo и «взломать» его исправить … они безопасны? загрузите большой файл размером от 1 до 2 ГБ с помощью загрузки файла jQuery – blueimp (основанный на Ajax) php / yii, который показывает ошибку в браузере Firefox Проблема с PHP stripslashes ini_set ('memory_limit', …) не работает и возвращает false; не может понять, почему file_get_contents ("php: // input"), показывающий null, когда var_dump

Отправка электронной почты с помощью gmail smtp с помощью электронной почты codeigniter

<?php class Email extends Controller { 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'] = 'mygmail@gmail.com'; $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('mygmail@gmail.com', 'myname'); $this->email->to('target@gmail.com'); $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'); } } 

Я получаю эту ошибку:

 A PHP Error was encountered Severity: Warning Message: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.gmail.com:465 (Connection timed out) Filename: libraries/Email.php Line Number: 1641 

Использование PORT 25/587

Я получил эту ошибку:

 A PHP Error was encountered Severity: Warning Message: fsockopen() [function.fsockopen]: SSL operation failed with code 1. OpenSSL Error messages: error:140770FC:SSL routines:func(119):reason(252) Filename: libraries/Email.php Line Number: 1641 

Сейчас я не хочу использовать phpmailer. (На самом деле я пытался использовать phpmailer, но я не смог).

Как решить эту проблему?

Solutions Collecting From Web of "Отправка электронной почты с помощью gmail smtp с помощью электронной почты codeigniter"

 $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->set_newline("\r\n"); // Set to, from, message, etc. $result = $this->email->send(); 

Из форума CodeIgniter

Вам нужно включить SSL в своей конфигурации PHP. Загрузите php.ini и найдите строку со следующим:

;extension=php_openssl.dll

Раскомментируйте это. : D

(удалив точку с запятой из инструкции)

extension=php_openssl.dll

Согласно документам CI ( библиотека электронной почты CodeIgniter ) …

Если вы предпочитаете не устанавливать настройки с использованием вышеуказанного метода, вы можете вместо этого поместить их в файл конфигурации. Просто создайте новый файл с именем email.php, добавьте $ config array в этот файл. Затем сохраните файл в config / email.php, и он будет использоваться автоматически. Вам не нужно использовать функцию $ this-> email-> initialize (), если вы сохраните свои настройки в файле конфигурации.

Я смог заставить это работать, поставив все настройки в application / config / email.php .

 $config['useragent'] = 'CodeIgniter'; $config['protocol'] = 'smtp'; //$config['mailpath'] = '/usr/sbin/sendmail'; $config['smtp_host'] = 'ssl://smtp.googlemail.com'; $config['smtp_user'] = 'YOUREMAILHERE@gmail.com'; $config['smtp_pass'] = 'YOURPASSWORDHERE'; $config['smtp_port'] = 465; $config['smtp_timeout'] = 5; $config['wordwrap'] = TRUE; $config['wrapchars'] = 76; $config['mailtype'] = 'html'; $config['charset'] = 'utf-8'; $config['validate'] = FALSE; $config['priority'] = 3; $config['crlf'] = "\r\n"; $config['newline'] = "\r\n"; $config['bcc_batch_mode'] = FALSE; $config['bcc_batch_size'] = 200; 

Затем в одном из методов контроллера у меня есть что-то вроде:

 $this->load->library('email'); // Note: no $config param needed $this->email->from('YOUREMAILHERE@gmail.com', 'YOUREMAILHERE@gmail.com'); $this->email->to('SOMEEMAILHERE@gmail.com'); $this->email->subject('Test email from CI and Gmail'); $this->email->message('This is a test.'); $this->email->send(); 

Кроме того, как писал Cerebro, мне пришлось раскомментировать эту строку в файле php.ini и перезапустить PHP:

 extension=php_openssl.dll 

Измените его на следующее:

 $ci = get_instance(); $ci->load->library('email'); $config['protocol'] = "smtp"; $config['smtp_host'] = "ssl://smtp.gmail.com"; $config['smtp_port'] = "465"; $config['smtp_user'] = "blablabla@gmail.com"; $config['smtp_pass'] = "yourpassword"; $config['charset'] = "utf-8"; $config['mailtype'] = "html"; $config['newline'] = "\r\n"; $ci->email->initialize($config); $ci->email->from('blablabla@gmail.com', 'Blabla'); $list = array('xxx@gmail.com'); $ci->email->to($list); $this->email->reply_to('my-email@gmail.com', 'Explendid Videos'); $ci->email->subject('This is an email test'); $ci->email->message('It is working. Great!'); $ci->email->send(); 

отправить html-адрес электронной почты через codeiginater

  $this->load->library('email'); $this->load->library('parser'); $this->email->clear(); $config['mailtype'] = "html"; $this->email->initialize($config); $this->email->set_newline("\r\n"); $this->email->from('email@example.com', 'Website'); $list = array('xxxxxxxx@archmage.lk', 'xxxxx@gmail.com'); $this->email->to($list); $data = array(); $htmlMessage = $this->parser->parse('messages/email', $data, true); $this->email->subject('This is an email test'); $this->email->message($htmlMessage); if ($this->email->send()) { echo 'Your email was sent, thanks chamil.'; } else { show_error($this->email->print_debugger()); } 

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

 $config = array( 'protocol' => '', 'smtp_host' => '', 'smtp_port' => '', 'smtp_user' => 'yourname@gmail.com', 'smtp_pass' => '**********' ); 

или

 $config['protocol'] = ''; $config['smtp_host'] = ''; $config['smtp_port'] = ; $config['smtp_user'] = 'yourname@gmail.com'; $config['smtp_pass'] = 'password'; 

меня устраивает.

Это может быть так:

Если вы используете cpanel для своего сайта, ограничения SMTP являются проблемой и вызывают эту ошибку. Ограничения SMTP

Ошибка при отправке электронной почты с помощью CodeIgniter

Еще один вариант, который у меня есть, на сервере linux с Postfix:

Сначала настройте электронную почту CI для использования электронной почты вашего сервера: например, в email.php , например

 # alias to postfix in a typical Postfix server $config['protocol'] = 'sendmail'; $config['mailpath'] = '/usr/sbin/sendmail'; 

Затем настройте свой постфикс для передачи почты в Google (возможно, в зависимости от адреса отправителя). Вероятно, вам нужно будет установить настройки пароля пользователя в /etc/postfix/sasl_passwd (docs)

Это намного проще (и меньше фрагментарно), если у вас есть Linux-модуль, уже настроенный на отправку некоторых / всех своих исходящих писем в Google.