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