您现在的位置是:首页 > 博客日记 > Php Php

封装php发送邮件email扩展

2019-09-26 17:38:44 【Php】 人已围观

PHP发送邮件虽然很简单,但是用起来有的时候总是出问题,分享一波亲测没毛病的!!!

Install

  1. composer require tinymeng/mailer dev-master -vvv

使用

类库使用的命名空间为\\tinymeng\\mailer

  1. use tinymeng\mailer\Email;
  2. //******************** 配置信息 start ********************************
  3. $config = [
  4. 'host' => 'smtp.qq.com',
  5. 'port' => '465',
  6. 'encryption'=> 'ssl',
  7. 'username'=> '********@qq.com',
  8. 'password'=> '********',
  9. 'from_address'=> '*******@qq.com',
  10. 'from_name'=> 'TinyMeng管理员',
  11. ];
  12. //******************** 配置信息 end ********************************
  13. $email = Email::smtp($config);
  14. $email->setDebug(true);//线上注释此行
  15. $email->toEmail("879042886@qq.com");
  16. // $email->toEmail("879042886@qq.com,879042775@qq.com");//多账号已逗号隔开
  17. $mailtitle = "饭后等你,测试邮件发送";
  18. $mailcontent = "饭后等你,测试邮件发送";
  19. $mailtype = "html";
  20. $state = $email->sendmail( $mailtitle, $mailcontent, $mailtype);
  21. if($state==""){
  22. exit("发送失败");
  23. }
  24. exit("发送成功");

在config中可配置的参数

  1. $host; //发送email Host
  2. $port; //端口 25 or 456
  3. $encryption; //加密 ssl
  4. $username; //邮箱用户名(发送人email)
  5. $password; //邮箱密码(如果是第三方请去设置里获取)
  6. $from_address;//发送人email
  7. $from_name; //发送人名称
  8. $to_adress; //接收人email
  9. $log_file = false;//记录日志
  10. $host_name = "localhost"; //is used in HELO command
  11. $time_out = 30;//is used in fsockopen()

如报错

  1. /**
  2. * 'Trying to smtp.163.com:25 Error: Cannot connenct to relay host smtp.163.com
  3. * Error: Connection timed out (110) Error: Cannot send email to 879042886@qq.com'
  4. *
  5. * port: 一般我们配置的smtp服务器端口都是25,不过有的服务器或空间提供商把25端口给禁用了,比如阿里云就给禁用了,
  6. * 这个可以找相应的提供商确认一下。如果真是禁用了25端口,可以采用465端口,
  7. * 这个端口很多主流的邮件服务商像网易邮箱、QQ邮箱、阿里云邮箱也都支持,采用了465端口
  8. */

实例使用

composer require tinymeng/mailer dev-master -vvv

example文件下的 index.htmlsendmail.php文件放在与vendor平级目录

修改sendmail.php对应的配置

注: 邮箱不能自己给自己发送



关注TinyMeng博客,更多精彩分享,敬请期待!
 

很赞哦! ()