PHPmailer、CI框架发送邮件

2024-06-19 17:48

本文主要是介绍PHPmailer、CI框架发送邮件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、CI框架

CI框架有一个专门的email类,用的时候加载进来即可

<?phpclass Mail{public function sendMail(){$this->load->library('email');  $config = array();$config['protocol']     = 'SMTP';  //邮件协议$config['smtp_host']    = 'ssl://smtp.gmail.com';$config['smtp_user']    = 'youremail@gmail.com';$config['smtp_pass']    = 'yourpassword';  //注意这个不是邮箱登陆密码,是SMTP授权码$config['smtp_port']    = '465';$config['charset']      = 'utf-8';$config['mailtype']     = 'html';$config['smtp_timeout'] = '5';$config['newline'] = "\r\n";$config['wordwrap'] = TRUE;     // 自动换行$this->email->initialize($config);$this->email->from ('from@email.com', 'From email name');$this->email->to ('to@email.com', 'To email name');$this->email->cc ('cc@email.com'); //抄送$this->email->bcc ('bcc@email.com'); //秘密抄送$this->email->subject ('Test subject');$this->email->message ('The content'); //内容$this->email->attach('application\controllers\1.jpeg');	 //附件,相对于index.php的路径$this->email->send ();}}?>

 

二、PHPmailer发送邮件

首先下载最新版的PHPmailer,下载地址:http://code.google.com/a/apache-extras.org/p/phpmailer/downloads/list。

把class.phpmailer.php 和 class.smtp.php引入。当然可以对这俩文件重命名。

<?phpnamespace app\common\logic;class EmailLogic{function sendMail(){import('Org.Util.PHPMailer.phpmailer');import('Org.Util.PHPMailer.smtp');//实例化PHPMailer核心类$mail = new \PHPMailer();$mail->IsSMTP();//采用smtp服务器发送邮件//是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式$mail->SMTPDebug = 1;//使用smtp鉴权方式发送邮件$mail->isSMTP();//smtp需要鉴权 这个必须是true$mail->SMTPAuth=false;//链接qq域名邮箱的服务器地址$mail->Host = 'smtp.qq.com';//设置使用ssl加密方式登录鉴权$mail->SMTPSecure = 'ssl';//设置ssl连接smtp服务器的远程服务器端口号,以前的默认是25,但是现在新的好像已经不可用了 可选465或587$mail->Port = 465;//设置发件人的主机域 可有可无 默认为localhost 内容任意,建议使用你的域名$mail->Hostname = 'localhost';//设置发送的邮件的编码 可选GB2312 我喜欢utf-8 据说utf8在某些客户端收信下会乱码$mail->CharSet = 'UTF-8';//设置发件人姓名(昵称) 任意内容,显示在收件人邮件的发件人邮箱地址前的发件人姓名$mail->FromName = '报价系统通知';//smtp登录的账号 这里填入字符串格式的qq号即可$mail->Username ='';//smtp登录的密码 使用生成的授权码 你的最新的授权码$mail->Password = '';//设置发件人邮箱地址 这里填入上述提到的“发件人邮箱”$mail->From = 'ideal@51job.com';$mail->From = 'notice@51job.com';//为该邮件添加附件 该方法也有两个参数 第一个参数为附件存放的目录(相对目录、或绝对目录均可) 第二参数为在邮件附件中该附件的名称$filePath = ROOT_PATH .'clientInfo.xlsx';if (is_file($filePath)) {$mail->AddAttachment($filePath,'clientInfo.xlsx');}//同样该方法可以多次调用 上传多个附件// $mail->addAttachment('./Jlib-1.1.0.js','Jlib.js');//邮件正文是否为html编码 注意此处是一个方法 不再是属性 true或false$mail->isHTML(true);//设置收件人邮箱地址 该方法有两个参数 第一个参数为收件人邮箱地址 第二参数为给该地址设置的昵称 不同的邮箱系统会自动进行处理变动 这里第二个参数的意义不大$mail->addAddress($to,'报价通知');//抄送给ideal$mail->addCC('ideal@51job.com');//添加多个收件人 则多次调用方法即可// $mail->addAddress('xxx@qq.com','lsgo在线通知');//添加该邮件的主题$mail->Subject = $title;//添加邮件正文 上方将isHTML设置成了true,则可以是完整的html字符串 如:使用file_get_contents函数读取本地的html文件$mail->Body = $content;$status = $mail->send();//简单的判断与提示信息if($status) {return true;}else{return false;}}}
?>

 

如果是内部服务器已经做了免登录,可以把仅仅保留 $mail->IsSMTP();,其他SMTP相关的注释掉即可。

这篇关于PHPmailer、CI框架发送邮件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1075721

相关文章

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

Python手搓邮件发送客户端

《Python手搓邮件发送客户端》这篇文章主要为大家详细介绍了如何使用Python手搓邮件发送客户端,支持发送邮件,附件,定时发送以及个性化邮件正文,感兴趣的可以了解下... 目录1. 简介2.主要功能2.1.邮件发送功能2.2.个性签名功能2.3.定时发送功能2. 4.附件管理2.5.配置加载功能2.6.

解决Cron定时任务中Pytest脚本无法发送邮件的问题

《解决Cron定时任务中Pytest脚本无法发送邮件的问题》文章探讨解决在Cron定时任务中运行Pytest脚本时邮件发送失败的问题,先优化环境变量,再检查Pytest邮件配置,接着配置文件确保SMT... 目录引言1. 环境变量优化:确保Cron任务可以正确执行解决方案:1.1. 创建一个脚本1.2. 修

Docker集成CI/CD的项目实践

《Docker集成CI/CD的项目实践》本文主要介绍了Docker集成CI/CD的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、引言1.1 什么是 CI/CD?1.2 docker 在 CI/CD 中的作用二、Docke

Django中使用SMTP实现邮件发送功能

《Django中使用SMTP实现邮件发送功能》在Django中使用SMTP发送邮件是一个常见的需求,通常用于发送用户注册确认邮件、密码重置邮件等,下面我们来看看如何在Django中配置S... 目录1. 配置 Django 项目以使用 SMTP2. 创建 Django 应用3. 添加应用到项目设置4. 创建

MyBatis框架实现一个简单的数据查询操作

《MyBatis框架实现一个简单的数据查询操作》本文介绍了MyBatis框架下进行数据查询操作的详细步骤,括创建实体类、编写SQL标签、配置Mapper、开启驼峰命名映射以及执行SQL语句等,感兴趣的... 基于在前面几章我们已经学习了对MyBATis进行环境配置,并利用SqlSessionFactory核

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

Spring框架5 - 容器的扩展功能 (ApplicationContext)

private static ApplicationContext applicationContext;static {applicationContext = new ClassPathXmlApplicationContext("bean.xml");} BeanFactory的功能扩展类ApplicationContext进行深度的分析。ApplicationConext与 BeanF

数据治理框架-ISO数据治理标准

引言 "数据治理"并不是一个新的概念,国内外有很多组织专注于数据治理理论和实践的研究。目前国际上,主要的数据治理框架有ISO数据治理标准、GDI数据治理框架、DAMA数据治理管理框架等。 ISO数据治理标准 改标准阐述了数据治理的标准、基本原则和数据治理模型,是一套完整的数据治理方法论。 ISO/IEC 38505标准的数据治理方法论的核心内容如下: 数据治理的目标:促进组织高效、合理地

如何使用Ansible实现CI/CD流水线的自动化

如何使用Ansible实现CI/CD流水线的自动化 持续集成(CI)和持续交付(CD)是现代软件开发过程中的核心实践,它们帮助团队更快地交付高质量的软件。Ansible,作为一个强大的自动化工具,可以在CI/CD流水线中发挥关键作用。本文将详细介绍如何使用Ansible实现CI/CD流水线的自动化,包括设计流水线的结构、配置管理、自动化测试、部署、以及集成Ansible与CI/CD工具(如Jen