SMTP

SMTP 功能由 ginkgo\Smtp 类完成,SMTP 全称 Simple Mail Transfer Protocol,即简单邮件传输协议,是在 Internet 传输 email 的事实标准。


配置

可以通过配置文件定义

  1. 'var_extra' => array(
  2. 'smtp' => array(
  3. 'host' => '', // 服务器
  4. 'secure' => 'off', // 加密传输
  5. 'port' => 25, // 端口
  6. 'auth' => 'true', // 是否需要验证
  7. 'user' => '', // 用户名
  8. 'pass' => '', // 密码
  9. 'from_addr' => 'root@localhost', // 来源地址
  10. 'from_name' => 'root', // 来源名字
  11. 'reply_addr' => 'root@localhost', // 回复地址
  12. 'reply_name' => 'root', // 回复名字
  13. 'debug' => '0', // 调试模式
  14. ),
  15. ...
  16. ),

也可以在实例化 SMTP 类时定义

  1. $config = array(
  2. 'host' => '', // 服务器
  3. 'secure' => 'off', // 加密类型
  4. 'port' => 25, // 端口
  5. 'auth' => 'true', // 是否需要验证
  6. 'user' => '', // 用户名
  7. 'pass' => '', // 密码
  8. 'from_addr' => 'root@localhost', // 来源地址
  9. 'from_name' => 'root', // 来源名字
  10. 'reply_addr' => 'root@localhost', // 回复地址
  11. 'reply_name' => 'root', // 回复名字
  12. 'debug' => '0', // 调试模式
  13. );
  14. $smtp = Smtp::instance($config);

优先级:初始化定义 > 配置文件定义


连接服务器

connect 方法可连接服务器

  1. $smtp->connect();

完整的发送邮件例子

  1. $smtp = Smtp::instance($config);
  2. $smtp->addRcpt('baigo@baigo.net'); // 支持多个收件人
  3. $smtp->addRcpt('fone@baigo.net', 'fone'); // 支持定义收件人名
  4. $smtp->setSubject('这是一封邮件');
  5. $smtp->setContent('<div>这是邮件内容</div>'); // 支持 HTML
  6. $smtp->send();

基本操作

  • 添加收件人

    1. $smtp = Smtp::instance();
    2. $smtp->addRcpt('baigo@baigo.net'); // 支持多个收件人
    3. $smtp->addRcpt('fone@baigo.net', 'fone'); // 支持定义收件人名
  • 添加回复人

    1. $smtp->addReply('baigo@baigo.net'); // 支持多个回复人
    2. $smtp->addReply('fone@baigo.net', 'fone'); // 支持定义回复人名
  • 设置发件人

    1. $smtp->setFrom('fone@baigo.net', 'fone'); // 支持定义发件人名
  • 设置邮件主题

    1. $smtp->setSubject('这是一封邮件');
  • 设置邮件内容

    1. $smtp->setContent('<div>这是邮件内容</div>'); // 支持 HTML
  • 设置纯文本邮件内容

    1. $smtp->setContentAlt('这是邮件内容');
  • 发送邮件

    1. $smtp->send();
  • 获取错误信息

    1. $smtp->getError();