CodeIgniter - 发送电子邮件

在CodeIgniter中发送电子邮件要容易得多.您还可以在CodeIgniter中配置有关电子邮件的首选项. CodeIgniter提供以下用于发送电子邮件和减号的功能;

  • 多个协议 : 邮件,Sendmail和SMTP

  • SMTP的TLS和SSL加密

  • 多个收件人

  • CC和BCC

  • HTML或纯文本电子邮件

  • 附件

  • 自动换行

  • 优先顺序

  • BCC批处理模式,可以将大型电子邮件列表分成小的BCC批次.

  • 电子邮件调试工具

电子邮件类具有以下功能,可简化发送电子邮件的工作.

SN语法参数返回返回类型
1from( $ from [, $ name ='' [, $ return_path = NULL ])

$ from ( string ) :  "来自"电子邮件地址

$ name ( string ) :  "来自"显示名称

$ return_path ( string ) : 可选的电子邮件地址,用于将未送达的电子邮件重定向到

CI_Email实例(方法链接)CI_Email
2reply_to( $ replyto [, $ name =''])

$ replyto ( string ) : 回复的电子邮件地址

$ name ( string ) : 显示回复电子邮件地址的名称

CI_Email实例(方法链接)CI_Email
2to( $ to )

$ to ( mixed ) : 以逗号分隔的字符串或电子邮件地址数组

CI_Email实例(方法链接)CI_Email
3cc( $ cc )

$ cc (混合) : 以逗号分隔的字符串或电子邮件地址数组

CI_Email实例(方法链接)CI_Email
4bcc( $ bcc [, $ limit =''])

$ bcc (混合 ) : 以逗号分隔的字符串或电子邮件地址数组

$ limit ( int ) : 每批发送的最大电子邮件数

CI_Email实例(方法链接)CI_Email
5subject( $ subject )

$ subject ( string ) : 电子邮件主题行

CI_Email实例(方法链接)CI_Email
6消息( $ body )

$ body ( string ) : 电子邮件正文

CI_Email实例(方法链接)CI_Email
7set_alt_message( $ str )

$ str ( string ) : 备用电子邮件正文

CI_Email实例(方法链接)CI_Email
8set_header( $ header,$ value )

$ header ( string ) : 标题名称

$ value ( string ) : 标头值

CI_Email实例(方法链接)CI_Email
9clear([ $ clear_attachments = FALSE ])

$ clear_attachments ( bool ) - 是否清除附件

CI_Email实例(方法链接)CI_Email
10发送([ $ auto_clear = TRUE ])

$ auto_clear ( bool ) : 是否自动清除消息数据

CI_Email实例(方法链接)CI_Email
11attach($ filename [,$ disposition =''[,$ newname = NULL [, $ mime ='']]])

$ filename ( string ) : 文件名

$ disposition ( string ) : 附件的"处置".无论此处使用的MIME规范如何,大多数电子邮件客户端都会自行决定. iana

$ newname ( string ) : 要在电子邮件中使用的自定义文件名

$ mime ( string ) : 要使用的MIME类型(对缓冲数据有用)

CI_Email实例(方法链接)CI_Email
12attachment_cid( $ filename )

$ filename ( string ) : 现有附件文件名

附件内容ID或如果找不到则为FALSEstring

发送电子邮件

要使用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