codeigniter 发送电子邮件
在 codeigniter 中发送电子邮件要容易得多。您还可以在 codeigniter 中配置有关电子邮件的首选项。 codeigniter 提供以下发送电子邮件的功能:
- 多种协议-邮件、sendmail 和 smtp
- 用于 smtp 的 tls 和 ssl 加密
- 多个收件人
- 抄送和密件抄送
- html 或纯文本电子邮件
- 附件
- 自动换行
- 优先事项
- 密件抄送批处理模式,可将大型电子邮件列表分解为小型密件抄送批次。
- 电子邮件调试工具
email 类具有以下功能以简化发送电子邮件的工作。
语法 | parameters | returns | return type |
from($from[, $name = ''[, $return_path = null]]) |
$from ( string)-"发件人"电子邮件地址 $name ( string) − "发件人"显示名称 $return_path ( string) − 可选电子邮件地址,用于重定向未送达的电子邮箱邮寄到 |
ci_email 实例(方法链) | ci_email |
reply_to($replyto[, $name = '']) |
$replyto ( string)-回复的电子邮件地址 $name ( string)-回复电子邮件地址的显示名称 |
ci_email 实例(方法链) | ci_email |
to($to) |
$to ( mixed)-逗号分隔的字符串或电子邮件地址数组 |
ci_email 实例(方法链) | ci_email |
cc($cc) |
$cc ( mixed)-逗号分隔的字符串或电子邮件地址数组 |
ci_email 实例(方法链) | ci_email |
bcc($bcc[, $limit = '']) |
$bcc ( mixed)-逗号分隔的字符串或电子邮件地址数组 $limit ( int)-每批发送的最大电子邮件数量 |
ci_email 实例(方法链) | ci_email |
subject($subject) |
$subject ( string)-电子邮件主题行 |
ci_email 实例(方法链) | ci_email |
message($body) |
$body ( string) − 电子邮件正文 |
ci_email 实例(方法链) | ci_email |
set_alt_message($str) |
$str ( string)-替代电子邮件正文 |
ci_email 实例(方法链) | ci_email |
set_header($header, $value) |
$header ( string) − 标题名称 $value ( string)-标题值 |
ci_email 实例(方法链) | ci_email |
clear([$clear_attachments = false]) |
$clear_attachments ( bool) – 是否清除附件 |
ci_email 实例(方法链) | ci_email |
send([$auto_clear = true]) |
$auto_clear ( bool) − 是否自动清除消息数据 |
ci_email 实例(方法链) | ci_email |
attach($filename[, $disposition = ''[, $newname = null[, $mime = '']]]) |
$filename ( string) − 文件名 $disposition ( string)-附件的"处置"。无论此处使用的 mime 规范如何,大多数电子邮件客户端都会做出自己的决定。 iana $newname ( string)-在电子邮件中使用的自定义文件名 $mime ( string)-要使用的 mime 类型(用于缓冲数据) |
ci_email 实例(方法链) | ci_email |
attachment_cid($filename) |
$filename ( string) − 现有附件文件名 |
附件 content-id 或 false(如果未找到) | 字符串 |
发送电子邮件
要使用 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();
示例
创建控制器文件 email_controller.php 并将其保存在 application/controller/email_controller.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
codeigniter email example echo $this--->session->flashdata('email_sent'); echo form_open('/email_controller/send_mail'); ?> echo form_close();
在 application/config/routes.php 中的 routes.php 文件中进行更改,并在文件末尾添加以下行。
$route['email'] = 'email_controller';
通过访问以下链接执行上述示例。将 yoursite.com 替换为您网站的网址。
http://yoursite.com/index.php/email