ci框架(codeigniter)Email发送邮件、收件人、附件、Email调试工具
ci框架(codeigniter)Email发送邮件、收件人、附件、Email调试工具
Email 类
CodeIgniter 拥有强大的 Email 类来提供如下的功能:
多协议:Mail、Sendmail 和 SMTP
多个收件人
抄送和密送
HTML 或纯文本邮件
附件
自动换行
邮件优先级
密送批处理模式,开启时,大邮件列表将被分成小批次密送。
Email 调试工具
发送邮件
发送邮件不仅简单,而且可以发送时进行配置或者将参数放到配置文件中。
这里是一个发送邮件的标准示例。
注意:该示例是假定使用一个控制器来发送邮件。
$this->load->library('email');
$this->email->from('your@example.com', 'Your Name');
$this->email->to('someone@example.com');
$this->email->cc('another@another-example.com');
$this->email->bcc('them@their-example.com');
$this->email->subject('Email Test');
$this->email->message('Testing the email class.');
$this->email->send();
echo $this->email->print_debugger();
设置 Email 参数
有17个不同的有效参数来提供给你如何定制你发送的电子邮件。您可以在此手动设置,或自动通过你储存在配置文件中的键值来设置,描述如下:
参数设定通过一系列的参数值去完成电子邮件的initialize功能。这里有一个例子,说明怎样设置一些参数设定:
$config['protocol'] = 'sendmail';
$config['mailpath'] = '/usr/sbin/sendmail';
$config['charset'] = 'iso-8859-1';
$config['wordwrap'] = TRUE;
$this->email->initialize($config);
说明: 大多数参数都有默认值,如果你没有配置这些参数,它们的默认值就会被使用。
在配置文件中设置 Email 参数
如果您不想使用上述方法设定参数,您可以把它们放入一个配置文件。创建一个新文件名称为email.php ,添加$config数组在该文件中。然后将该文件保存为config/email.php 它将自动的被使用。如果您保存了一个参数配置文件,就不需要使用$this->email->initialize()函数来初始化参数了
Email 参数
下面是发送电子邮件时可以设置的属性的列表。
参数 默认值 选项 描述
useragent CodeIgniter 无 用户代理 "user agent"。
protocol mail mail, sendmail, or smtp 邮件发送协议。
mailpath /usr/sbin/sendmail 无 服务器上 Sendmail 的实际路径。protocol 为 sendmail 时使用。
smtp_host 无默认值 无 SMTP 服务器地址。
smtp_user 无默认值 无 SMTP 用户账号。
smtp_pass 无默认值 无 SMTP 密码。
smtp_port 25 无 SMTP 端口。
smtp_timeout 5 无 SMTP 超时设置(单位:秒)。
wordwrap TRUE TRUE 或 FALSE (布尔值) 开启自动换行。
wrapchars 76 自动换行时每行的最大字符数。
mailtype text text 或 html 邮件类型。发送 HTML 邮件比如是完整的网页。请确认网页中是否有相对路径的链接和图片地址,它们在邮件中不能正确显示。
charset utf-8 字符集(utf-8, iso-8859-1 等)。
validate FALSE TRUE 或 FALSE (布尔值) 是否验证邮件地址。
priority 3 1, 2, 3, 4, 5 Email 优先级. 1 = 最高. 5 = 最低. 3 = 正常.
crlf \n "\r\n" or "\n" or "\r" 换行符. (使用 "\r\n" to 以遵守RFC 822).
newline \n "\r\n" or "\n" or "\r" 换行符. (使用 "\r\n" to 以遵守RFC 822).
bcc_batch_mode FALSE TRUE or FALSE (boolean) 启用批量暗送模式.
bcc_batch_size 200 None 批量暗送的邮件数.
Email 函数参考
$this->email->from()
设置发件人email地址和名称:
$this->email->from('you@example.com', 'Your Name');
$this->email->reply_to()
设置邮件回复地址. 如果没有提供这个信息,将会使用"from()"函数中的值. 例如:
$this->email->reply_to('you@example.com', 'Your Name');
$this->email->to()
设置收件人email地址(多个). 地址可以是单个、一个以逗号分隔的列表或是一个数组:
$this->email->to('someone@example.com'); $this->email->to('one@example.com, two@example.com, three@example.com'); $list = array('one@example.com', 'two@example.com', 'three@example.com');
$this->email->to($list);
$this->email->cc()
设置抄送(Carbon Copy / CC) email地址(多个). 类似to()函数, 地址可以是单个、一个以逗号分隔的列表或是一个数组.
$this->email->bcc()
设置暗送(Blind Carbon Copy / BCC) email地址(多个). 类似to()函数, 地址可以是单个、一个以逗号分隔的列表或是一个数组.
$this->email->subject()
设置email主题:
$this->email->subject('This is my subject');
$this->email->message()
设置email正文部分:
$this->email->message('This is my message');
$this->email->set_alt_message()
设置可选的邮件EMAIL正文部分:
$this->email->set_alt_message('This is the alternative message');
这是EMAIL可选的一部分,如果你发送带HTML的邮件,这可以用到。它用于当接收邮件都不支持HTML格式时显示给用户的内容。如果你没有设置这部分,CodeIginiter会自动从邮件正文中提取去掉TAGS的部分。
$this->email->clear()
将所有EMAIL的变量清空. 这个方法用于当你在循环中发送邮件时,可以在两次循环中重新设置邮件内容。
foreach ($list as $name => $address)
{
$this->email->clear();
$this->email->to($address);
$this->email->from('your@example.com');
$this->email->subject('Here is your info '.$name);
$this->email->message('Hi '.$name.' Here is the info you requested.');
$this->email->send();
}
如果将参数设为TRUE,附件也会被清空:
$this->email->clear(TRUE);
$this->email->send()
发送EMAIL. 根据发送结果,成功返回TRUE,失败返回FALSE。就可以将它用于判断语句:
if ( ! $this->email->send())
{
// Generate error
}
$this->email->attach()
添加附件。第一个参数是相对于入口文件的文件路径/文件名(不能写成'/path/photo1.jpg'). 注意: 是路径而不是URL。多次使用该函数可以添加多个附件:
$this->email->attach('path/photo1.jpg');
$this->email->attach('path/photo2.jpg');
$this->email->attach('path/photo3.jpg');
$this->email->send();
$this->email->print_debugger()
返回包含邮件内容的字符串,包括EMAIL头和EMAIL正文。用于调试。
取消自动换行
如果你启用自动换行(建议遵循 RFC 822),EMAIL中有一个非常长的链接它将会换行,导致链接不能被收信人直接点击打开。CodeIgniter可以对正文的部分片段避免这种自动换行,比如:
The text of your email that
gets wrapped normally.
{unwrap}http://example.com/a_long_link_that_should_not_be_wrapped.html{/unwrap}
More text that will be
wrapped normally.
将你不想自动换行的部分放入: {unwrap} {/unwrap}中间
相关文章
- Fiddler (一) 教程(Web调试工具)
- 安卓逆向_12 --- jeb工具的使用 ( 动态调试 smali 代码 【 普通调试 和 debug调试 】)
- 反调试 - CloseHanlde,NtClose
- 逆向 stdio.h 函数库 fseek 函数(调试版本)
- CVE-2010-3974:Windows 传真封面编辑器 FxsCover.exe 双重释放漏洞调试分析
- 开启Android应用调试选项的工具XDebug的介绍
- 调试存储器转储文件
- [转] whistle--全新的跨平台web调试工具
- 调试webpack
- 师兄送福利:蓝牙调试工具使用教程
- 微信小程序之 页面跳转 及 调用本地json的假数据调试
- 前端基础 - 网页调试工具NetWork
- c# VS.NET 中的调试工具
- QT开发之旅二TCP调试工具
- JMeter学习-034-JMeter调试工具之一---HTTP Mirror Server
- React调试工具React Developer Tools
- Ubuntu16.04下写的Qt程序,调试时没问题,运行时偶现崩溃 (需要在运行时生成core dump文件,QMAKE_CC += -g)
- Vue 项目调试总结
- 软件设计开发笔记2:基于QT设计串口调试工具
- StompJS使用文档总结:如何创建stomp客户端、如何连接服务器、心跳机制、如何发送消息、如何订阅和取消订阅、事务、如何调试
- idea的debug调试快捷键
- 使用USB转TTL串口板和ST-LINK调试下载器给STM32单片机下载程序
- OpenHarmony命令行调试工具hdc_std介绍
- 开源发布:VS代码段快捷方式及可视化调试快速部署工具
- 谷歌调试工具选取元素选择不到页面的详细元素问题
- [Android Studio] Android Studio使用keytool工具读取Debug 调试版数字证书以及release 发布版数字证书
- IDEA 教程之基础篇(五):IntelliJ IDEA 断点调试 Debug 详细教程 + 动图演示
- 移动端页面调试工具 vConsole 与 eruda