在CodeIgniter中发送电子邮件要容易得多.您还可以在CodeIgniter中配置有关电子邮件的首选项. CodeIgniter提供以下用于发送电子邮件和减号的功能;
多个协议 : 邮件,Sendmail和SMTP
SMTP的TLS和SSL加密
多个收件人
CC和BCC
HTML或纯文本电子邮件
附件
自动换行
优先顺序
BCC批处理模式,可以将大型电子邮件列表分成小的BCC批次.
电子邮件调试工具
电子邮件类具有以下功能,可简化发送电子邮件的工作.
SN | 语法 | 参数 | 返回 | 返回类型 |
---|---|---|---|---|
1 | from( $ from [, $ name ='' [, $ return_path = NULL ]) | $ from ( string ) : "来自"电子邮件地址 $ name ( string ) : "来自"显示名称 $ return_path ( string ) : 可选的电子邮件地址,用于将未送达的电子邮件重定向到 | CI_Email实例(方法链接) | CI_Email |
2 | reply_to( $ replyto [, $ name ='']) | $ replyto ( string ) : 回复的电子邮件地址 $ name ( string ) : 显示回复电子邮件地址的名称 | CI_Email实例(方法链接) | CI_Email |
2 | to( $ to ) | $ to ( mixed ) : 以逗号分隔的字符串或电子邮件地址数组 | 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( $ subject ) | $ subject ( string ) : 电子邮件主题行 | CI_Email实例(方法链接) | CI_Email |
6 | 消息( $ body ) | $ body ( string ) : 电子邮件正文 | CI_Email实例(方法链接) | CI_Email |
7 | set_alt_message( $ str ) | $ str ( string ) : 备用电子邮件正文 | CI_Email实例(方法链接) | CI_Email |
8 | set_header( $ header,$ value ) | $ header ( string ) : 标题名称 $ value ( string ) : 标头值 | CI_Email实例(方法链接) | CI_Email |
9 | clear([ $ 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 ( string ) : 文件名 $ disposition ( string ) : 附件的"处置".无论此处使用的MIME规范如何,大多数电子邮件客户端都会自行决定. iana $ newname ( string ) : 要在电子邮件中使用的自定义文件名 $ mime ( string ) : 要使用的MIME类型(对缓冲数据有用) | CI_Email实例(方法链接) | CI_Email |
12 | attachment_cid( $ filename ) | $ filename ( string ) : 现有附件文件名 | 附件内容ID或如果找不到则为FALSE | string |
要使用CodeIgniter发送电子邮件,首先必须使用以下命令加载电子邮件库跟随 : 去;
$ this-> load-> library('email');
加载库后,只需执行以下功能即可设置发送电子邮件所需的元素. from()函数用于设置和减号;发送电子邮件的地方和到()功能使用 : 电子邮件发送给谁. subject()和 message()函数用于设置电子邮件的主题和消息.
$ this-> email-> from('your@example.com','Your Name'); $ this-> email-> to('someone@example.com'); $ this-> email-> subject('Email Test'); $ this-> email-> message('测试电子邮件类.');
之后,执行 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 = "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