ci 框架发送邮箱
定义数据
$config = array(
\’protocol\’ =>\’smtp\’,
\’smtp_host\’=>\’ssl://smtp.163.com\’,
\’smtp_user\’=>\’zhouddxg@163.com\’,
\’smtp_pass\’=>\’***********\’,
\’smtp_port\’=>465,
\’smtp_timeout\’=>30,
\’mailtype\’=>\’html\’,
\’charset\’=>\’utf-8\’,
\’wordwrap\’=>TRUE,
\’newline\’=>PHP_EOL,
\’crlf\’=>”\r\n”
);
上述数据可以存放在config文件夹中以email.php命名进行存放
$this->load->library(\’email\’);
$this->email->set_newline(“\r\n”);
$this->email->from(\’zhouddxg@163.com\’, \’白骑士\’);
$this->email->to(\’1034174930@qq.com\’);
$this->email->subject(\’北京****有限公司\’); // 发送标题
$this->email->message($send_msg); // 内容
$this->email->send();
$status = $this->email->print_debugger();
if($status){
echo json_encode(array(\’status\’=>1,\’message\’=>\’验证码发送成功,请注意查收\’));;return false;
} else {
echo json_encode(array(\’status\’=>0,\’message\’=>\’验证码发送失败,请重新发送\’));return false;
}
需注意的是 若只需发送文字$coonfig[\’wordwrap\’] = \’text\’ 需要发送html模板的时候$coonfig[\’wordwrap\’] = \’html\’ ;
填写腾讯邮箱开启POP3/SMTP服务时的授权码,即核对密码正确 在邮箱设置 账号里面
即在email中编码和我们使用的编码不一样,会导致标题输入过长的时候会导致乱码
在email类中 在subject方法中将$subject = $this->_prep_q_encoding($subject); 改为$subject = \’=?\’. $this->charset .\’?B?\’. base64_encode($subject) .\’?=\’; 已验证
网上还有一种方法
在CI的Email类1297行有一行代码:
- $limit = 75 – 7 – strlen($this->charset);
我把代码中的75改成:
- $limit = 750 – 7 – strlen($this->charset);
未经验证 仅作参考