方案一:利用第三方平台发送邮件
下面例子通过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 */ |