CodeIgniter - отправка электронной почты

Отправка электронной почты в CodeIgniter намного проще. Вы также настраиваете параметры электронной почты в CodeIgniter. CodeIgniter предоставляет следующие функции для отправки электронных писем:

  • Несколько протоколов - Mail, Sendmail и SMTP
  • TLS и SSL-шифрование для SMTP
  • Несколько получателей
  • CC и BCC
  • Электронная почта в формате HTML или обычным текстом
  • Attachments
  • Перенос слов
  • Priorities
  • Пакетный режим BCC, позволяющий разбивать большие списки адресов электронной почты на небольшие пакеты BCC.
  • Инструменты отладки электронной почты

Класс электронной почты имеет следующие функции, чтобы упростить отправку электронных писем.

SN Синтаксис Параметры Возвращение Тип возврата
1 from ( $ from [, $ name = '' [, $ return_path = NULL ]])

$from( строка ) - адрес электронной почты «От»

$name( строка ) - отображаемое имя «От»

$return_path( строка ) - Дополнительный адрес электронной почты для перенаправления недоставленной электронной почты на

Экземпляр CI_Email (цепочка методов) CI_Email
2 reply_to ( $ replyto [, $ name = '' ])

$replyto( строка ) - адрес электронной почты для ответов

$name( строка ) - Отображаемое имя для адреса электронной почты для ответа

Экземпляр CI_Email (цепочка методов) CI_Email
2 в ( $ в )

$to( смешанный ) - строка с разделителями-запятыми или массив адресов электронной почты

Экземпляр CI_Email (цепочка методов) CI_Email
3 cc ( $ cc )

$cc( смешанный ) - строка с разделителями-запятыми или массив адресов электронной почты

Экземпляр CI_Email (цепочка методов) CI_Email
4 bcc ( $ bcc [, $ limit = '' ])

$bcc( смешанный ) - строка с разделителями-запятыми или массив адресов электронной почты

$limit( int ) - Максимальное количество писем для отправки за пакет

Экземпляр CI_Email (цепочка методов) CI_Email
5 тема ( $ тема )

$subject( строка ) - строка темы электронного письма

Экземпляр CI_Email (цепочка методов) CI_Email
6 сообщение ( $ body )

$body( строка ) - тело сообщения электронной почты

Экземпляр CI_Email (цепочка методов) CI_Email
7 set_alt_message ( $ str )

$str( строка ) - Альтернативное тело сообщения электронной почты

Экземпляр CI_Email (цепочка методов) CI_Email
8 set_header ( $ заголовок, $ значение )

$header( строка ) - Название заголовка

$value( строка ) - значение заголовка

Экземпляр CI_Email (цепочка методов) CI_Email
9 очистить ([ $ clear_attachments = FALSE ])

$clear_attachments( bool ) - Удалять ли вложения

Экземпляр CI_Email (цепочка методов) CI_Email
10 отправить ([ $ auto_clear = TRUE ])

$auto_clear( bool ) - Следует ли автоматически очищать данные сообщения

Экземпляр CI_Email (цепочка методов) CI_Email
11 attach ($ filename [, $ disposition = '' [, $ newname = NULL [, $ mime = '']]])

$filename( строка ) - Имя файла

$disposition( строка ) - «расположение» вложения. Большинство почтовых клиентов принимают собственное решение независимо от используемой здесь спецификации MIME. Иана

$newname( строка ) - Пользовательское имя файла для использования в электронной почте

$mime( строка ) - тип MIME для использования (полезно для буферизованных данных)

Экземпляр CI_Email (цепочка методов) CI_Email
12 attachment_cid ( $ имя файла )

$filename( строка ) - Имя существующего вложения

Content-ID прикрепленного файла или FALSE, если не найден строка

Отправка электронного письма

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

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

После загрузки библиотеки просто выполните следующие функции, чтобы установить необходимые элементы для отправки электронного письма. Вfrom() функция используется для установки - откуда отправляется электронное письмо и to()функция используется - кому отправляется электронное письмо. Вsubject() и message() Функция используется для установки темы и сообщения электронного письма.

$this->email->from('[email protected]', 'Your Name');
$this->email->to('[email protected]');
 
$this->email->subject('Email Test');
$this->email->message('Testing the email class.');

После этого выполните send() как показано ниже, чтобы отправить электронное письмо.

$this->email->send();

пример

Создайте файл контроллера Email_controller.php и сохраните это в application/controller/Email_controller.php.

<?php 
   class Email_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('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, 'Your Name'); 
         $this->email->to($to_email);
         $this->email->subject('Email Test'); 
         $this->email->message('Testing the email class.'); 
   
         //Send mail 
         if($this->email->send()) 
         $this->session->set_flashdata("email_sent","Email sent successfully."); 
         else 
         $this->session->set_flashdata("email_sent","Error in sending Email."); 
         $this->load->view('email_form'); 
      } 
   } 
?>

Создайте файл представления с именем email_form.php и сохраните в application/views/email_form.php

<!DOCTYPE html> 
<html lang = "en"> 

   <head> 
      <meta charset = "utf-8"> 
      <title>CodeIgniter Email Example</title> 
   </head>
	
   <body> 
      <?php 
         echo $this->session->flashdata('email_sent'); 
         echo form_open('/Email_controller/send_mail'); 
      ?> 
		
      <input type = "email" name = "email" required /> 
      <input type = "submit" value = "SEND MAIL"> 
		
      <?php 
         echo form_close(); 
      ?> 
   </body>
	
</html>

Внесите изменения в routes.php файл в application/config/routes.php и добавьте следующую строку в конец файла.

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

Выполните приведенный выше пример, перейдя по следующей ссылке. Замените yoursite.com URL-адресом вашего сайта.

http://yoursite.com/index.php/email