ci 框架发送邮箱

Posted ddxg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ci 框架发送邮箱相关的知识,希望对你有一定的参考价值。

定义数据

$config = array(
    ‘protocol‘ =>‘smtp‘,
    ‘smtp_host‘=>‘ssl://smtp.163.com‘,
    ‘smtp_user‘=>‘[email protected]‘,
    ‘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(‘[email protected]‘, ‘白骑士‘);
$this->email->to(‘[email protected]‘);
$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行有一行代码: 

  1. $limit = 75 - 7 - strlen($this->charset); 

我把代码中的75改成: 

  1. $limit = 750 - 7 - strlen($this->charset); 

 未经验证  仅作参考

 

以上是关于ci 框架发送邮箱的主要内容,如果未能解决你的问题,请参考以下文章

[麦先生]在Laravel框架里实现邮箱验证---发送邮件

nodejs发送邮件验证码封装(express框架)以QQ邮箱为例

用phpmailer发送邮件提示SMTP Error: Could not connect to SMTP host解决办法

ACRA 框架的使用 -- 发送到后台解析(后台的代码也在)

接口测试 — 接口自动化框架的发送邮件实现

使用Laravel框架发送邮件