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}中间

ci框架(codeigniter)Email发送邮件、收件人、附件、Email调试工具的更多相关文章

  1. CI框架使用PHPmailer发送邮件找回密码

    之前用PHP+Mysql+jQuery结合ThinkPHP做了一个用户验证邮箱找回密码功能<ThinkPHP之PHP+Mysql+jQuery发送邮箱找回密码>,现在分享一下用CI框架结合 ...

  2. CI框架------codeIgniter

    之前学习了thinkphp,学完之后印象不太深刻,在网上询问了一下,他们都说多学几个框架,以后可以自己写框架. 于是自己就放下thinkphp,下定决心再学一个,于是又从网上看了几个框架,综合比较了一 ...

  3. CI框架 CodeIgniter 伪静态 htaccess设置和Nginx伪静态方法

    众所周知,LAMP代表Linux下Apache.MySQL.PHP这种网站服务器架构:而LNMP指的是Linux下Nginx.MySQL.PHP这种网站服务器架构.LNMP一键安装包可以从网上下载使用 ...

  4. CI框架 CodeIgniter 伪静态 htaccess设置和Nginx伪静态方法2

    1.在根目录西下  新建.htaccess 文件 RewriteEngine on RewriteCond $1 !^(index\.php|images|robots\.txt) RewriteRu ...

  5. CI框架CodeIgniter伪静态各种服务器设置

    Apache服务器.htaccess伪静态设置 RewriteEngine on RewriteCond $1 !^(index\\.php|system\\.php|images|skin|js|l ...

  6. PHP CI框架email类发送邮件

    用CI框架发送邮件类 在中文标题太长的情况下会出现乱码,搜索后说是发送邮件的时候有标题长度的限制,按说的方法修改后,还是没能得到解决,后来发现需要转换邮件标题的编码,解决方法如下: 打开 librar ...

  7. CI框架Email类发送邮件提示Unable to send data: . The following SMTP error was encountered: Unable to .......

    最近服务器迁移,然后CI框架做的项目发邮件全挂掉了,刚开始是25端口没开,然后开了正好还是有问题, 1.打印请求信息和返回信息 echo $this->email->print_debug ...

  8. 解决ci框架php发送邮件附件中文乱码问题

    CI框架发送邮件附件中文出现乱码,是因为php basename()函数不支持中文引起,修改类库 Email.php 文件中 _append_attachments()方法,大致在 1474行 添加如 ...

  9. CI框架发送邮件(带附件)

    最近写了一个发送带附件的邮件,发邮件挺简单的,在我这里最重要的是遇到问题,哈哈哈哈 1.主要方法看代码 public function send_mail(){ $this->load-> ...

随机推荐

  1. Windows 7操作系统下PHP 7的安装与配置(图文详解)

    前提博客 Windows 7操作系统下Apache的安装与配置(图文详解) 从官网下载           PHP的官网 http://www.php.net/         特意,新建这么一个目录 ...

  2. 【CSS】3种CSS方法设置元素垂直水平居中

    1. 宽高固定 设置要水平垂直居中的 div 的 position 为 absolute,left:50%; margin-left为负的这个元素宽度的一半,同理,top:50%;margin-top ...

  3. 1.了解Objective-C语言

    了解Objective-C语言 ** Objective-C 语言是"消息结构"(messaging structure) 类似C++ .Java 是"函数调用" ...

  4. 大众点评APP分析随笔

    移动APP:大众点评 一.最核心功能:店铺评价功能,用户可以通过此功能对商家进行评分,也可以获取其他人对商家的评分信息. 二.核心功能满足的需求: 1. 去过商家消费的用户:用户已经体验的商家提供的产 ...

  5. SQL条件语句(IF, CASE WHEN, IF NULL)

    1.IF   表达式:IF( expr1 , expr2 , expr3 )   expr1条件,条件为true,则值是expr2 ,false,值就是expr3 SELECT o.id,u.acco ...

  6. C#在Excel的簡單操作--適用:與DB數據的簡單交互

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...

  7. dxf组码

    值 说明 -5 APP:永久反应器链 -4 APP:条件运算符(仅与 ssget 一起使用) -3 APP:扩展数据 (XDATA) 标记(固定) -2 APP:图元名参照(固定) -1 APP:图元 ...

  8. python根据日期返回星期

    import  time #定义:timedate为时间戳def  formattime(timedate,s="%Y-%m-%d %H:%M:%S"):      return  ...

  9. Js获取操作系统版本 && 获得浏览器版本

    //利用原生Js获取操作系统版本function getOS() { var sUserAgent = navigator.userAgent; var isWin = (navigator.plat ...

  10. 机器翻译注意力机制及其PyTorch实现

    前面阐述注意力理论知识,后面简单描述PyTorch利用注意力实现机器翻译 Effective Approaches to Attention-based Neural Machine Translat ...