发送电子邮件(Sending Email)
在CodeIgniter中发送电子邮件要容易得多。 您还可以在CodeIgniter中配置有关电子邮件的首选项。 CodeIgniter提供以下发送电子邮件的功能 -
- 多个协议 - 邮件,Sendmail和SMTP
- SMTP的TLS和SSL加密
- 多个收件人
- CC and BCCs
- HTML或纯文本电子邮件
- Attachments
- Word wrapping
- Priorities
- BCC批处理模式,可以将大型电子邮件列表分成小的BCC批次。
- 电子邮件调试工具
电子邮件类具有以下功能,以简化发送电子邮件的工作。
SN | 句法 | 参数 | 返回 | 退货类型 |
---|---|---|---|---|
1 | from( $from [, $name = '' [, $return_path = NULL ]]) | $from ( string ) - “From”电子邮件地址 $name ( string ) - “From”显示名称 $return_path ( string ) - 用于将未传递的电子邮件重定向到的可选电子邮件地址 | CI_Email instance (method chaining) | CI_Email |
2 | reply_to( $replyto [, $name = '' ]) | $replyto ( string ) - 回复的电子邮件地址 $name ( string ) - 显示回复电子邮件地址的名称 | CI_Email instance (method chaining) | CI_Email |
2 | to( $to ) | $to ( mixed ) - 以逗号分隔的字符串或一组电子邮件地址 | CI_Email instance (method chaining) | CI_Email |
3 | cc( $cc ) | $cc ( mixed ) - 以逗号分隔的字符串或一组电子邮件地址 | CI_Email instance (method chaining) | CI_Email |
4 | 密送( $bcc [, $limit = '' ]) | $bcc ( mixed ) - 以逗号分隔的字符串或一组电子邮件地址 $limit ( int ) - 每批发送的最大电子邮件数 | CI_Email instance (method chaining) | CI_Email |
5 | subject( $subject ) | $subject ( string ) - 电子邮件主题行 | CI_Email instance (method chaining) | CI_Email |
6 | message( $body ) | $body ( string ) - 电子邮件正文 | CI_Email instance (method chaining) | CI_Email |
7 | set_alt_message( $str ) | $str ( string ) - 备用电子邮件正文 | CI_Email instance (method chaining) | CI_Email |
8 | set_header( $header, $value ) | $header ( string ) - 标题名称 $value ( string ) - 标头值 | CI_Email instance (method chaining) | CI_Email |
9 | 清除([ $clear_attachments = FALSE ]) | $clear_attachments ( bool ) - 是否清除附件 | CI_Email instance (method chaining) | CI_Email |
10 | 发送([ $auto_clear = TRUE ]) | $auto_clear ( bool ) - 是否自动清除消息数据 | CI_Email instance (method chaining) | CI_Email |
11 | attach($ filename [,$ disposition =''[,$ newname = NULL [,$ mime ='']]]) | $filename ( string ) - 文件名 $disposition ( string ) - 附件的“处置”。 无论此处使用的MIME规范如何,大多数电子邮件客户端都会自行决定。 iana $newname ( string ) - 要在电子邮件中使用的自定义文件名 $mime ( string ) - 要使用的MIME类型(对缓冲数据有用) | CI_Email instance (method chaining) | CI_Email |
12 | attachment_cid( $filename ) | $filename ( string ) - 现有附件文件名 | 附件Content-ID如果找不到,则为FALSE | string |
发送电子邮件
要使用CodeIgniter发送电子邮件,首先必须使用以下方法加载电子邮件库 -
$this->load->library('email');
加载库后,只需执行以下功能即可设置发送电子邮件所需的元素。 from()函数用于设置 - 从发送电子邮件to()函数 - 向谁发送电子邮件。 subject()和message()函数用于设置电子邮件的主题和消息。
$this->email->from('your@example.com', 'Your Name');
$this->email->to('someone@example.com');
$this->email->subject('Email Test');
$this->email->message('Testing the email class.');
之后,执行send()函数,如下所示发送电子邮件。
$this->email->send();
例子 (Example)
创建一个控制器文件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 = "your@example.com";
$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>
在application/config/routes.php中的routes.php文件中进行更改,并在文件末尾添加以下行。
$route['email'] = 'Email_Controller';
通过访问以下链接执行上面的示例。 将yoursite.com替换为您网站的网址。
http://yoursite.com/index.php/email