通过ci框架mail邮件类发送邮件

PHPABC PHP开发 978 次浏览 , , 没有评论

通过ci框架mail邮件类发送邮件
方案一:利用第三方平台发送邮件

下面例子通过126邮箱给qq邮箱发送邮件,调用的是ci的mail类,经测试,无法使用qq邮箱给126发送,也无法用企业邮箱给其他邮箱发送邮件
//通过第三方平台邮件服务器发送邮件

//通过第三方平台邮件服务器发送邮件
 
    public function mailto()
 
    {
 
        $this->load->library('email');  //加载CI的email类
 
        //以下设置Email参数
 
        $config['protocol'] = 'smtp';
 
        $config['smtp_host'] = 'smtp.126.com';
 
        $config['smtp_user'] = 'qingmaozi';
 
        $config['smtp_pass'] = '******';//将******换成邮箱登陆密码即可
 
        $config['smtp_port'] = '25';
 
        $config['charset'] = 'utf-8';
 
        $config['wordwrap'] = TRUE;
 
        $config['mailtype'] = 'html';
 
        $this->email->initialize($config);
 
 
 
        //以下设置Email内容
 
        $this->email->from('qingmaozi@126.com', 'qingmaozi');
 
        $this->email->to('qing.chen@51job.com');
 
        $this->email->subject('Email Test');
 
        $this->email->message('<font color=red>Testing the email class.</font>');
 
//         $this->email->attach('application\controllers\1.jpeg');           //相对于index.php的路径
 
 
 
        $this->email->send();
 
 
 
        echo $this->email->print_debugger();        //返回包含邮件内容的字符串,包括EMAIL头和EMAIL正文。用于调试。
 
 
 
        echo 'sss';
 
 
 
    }

方案二:用过搭建邮件服务器来发送邮件

下面例子通过51job服务器邮件平台发送邮件
先通过构造函数加载mailmodel

public function __construct() 
 
{
 
    parent::__construct ();
 
    $this->load->model(array('MailModel'));
 
}
public function mail()
 
{
 
    $param = array();
 
    $param['to'] = 'qing.chen';
 
    $param['subject'] = '邮件测试-标题';
 
    //$param['tmpl'] = 'email/demo';
 
    $param['content'] = "111";
 
 
 
    $this->MailModel->sendMail($param);
 
 
 
    echo 'sss';
 
 
 
}

mailmodel为自定义model非ci框架自带的

<?php
 
/**
 
 * 邮件发送类
 
 * 
 
 * @author qing.chen
 
 *
 
 */
 
class MailModel extends CI_Model
 
{
 
    /**
 
     * 生成邮件内容
 
     * 
 
     * @param string $templ
 
     * @param array $data
 
     * @return string
 
     */
 
    public function makeBody($tmpl, $data)
 
    {
 
        $content = $this->load->view($tmpl, $data, true);
 
        return $content;
 
    }
 
 
 
  /**
 
   * 发送邮件
 
   * 
 
   * @param array $param
 
   * @return boolean
 
   */
 
  public function sendMail($param)
 
  {
 
      // 发件人配置
 
      if ( empty($param['frommail']))   $param['frommail'] = 'woims';
 
      if ( empty($param['fromname'])) $param['fromname'] = '运营平台';
 
      $param['frommail'] = $this->_domain($param['frommail']);
 
 
 
      // CI mail 配置
 
      $this->load->library('email');     
 
     $config = array();
 
     $config['charset']  = "UTF-8";  // 编码
 
     $config['wordwrap'] = TRUE;     // 自动换行
 
     $config['mailtype'] = 'html';   // 格式 (text/html)
 
     $config['protocol'] = 'SMTP';   // 邮件协议
 
     $this->email->initialize($config);
 
 
 
     //$param['cc'] = 'barly.li,qingbin.wu';
 
 
 
      $this->email->from($param['frommail'], $param['fromname']);
 
      if ( $param['to'])  $this->email->to($this->_domain($param['to']));
 
      if ( $param['cc'])  $this->email->cc($this->_domain($param['cc']));
 
      if ( $param['bcc']) $this->email->bcc($this->_domain($param['bcc']));
 
 
 
      //如果存在邮件模板使用模板作为邮件内容 2015-01-08
 
      $param['content'] = $param['tmpl'] ? $this->makeBody($param['tmpl'], $param['data']) : $param['content'];
 
 
 
      $this->email->subject($param['subject']);
 
      $this->email->message($param['content']);
 
      $this->email->send();
 
      return true;
 
  }
 
 
 
  /**
 
   * 将用户名转换成邮箱
 
   * 
 
   * @param array $to
 
   */
 
  private function _domain($to)
 
  {
 
      if ( !is_array($to)) $to = @explode(',', $to);
 
      foreach ( $to as $k=>$v)
 
      {
 
          $to[$k] = $v.'@51job.com';
 
      }
 
      return @implode(',', $to);
 
  }
 
}
 
/* End of file MailModel.php */
 
/* Location: ./application/models/mailmodel.php */

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

Go