• 售前

  • 售后

热门帖子
入门百科

PHPMAILER实现PHP发邮件功能

[复制链接]
ssg888 显示全部楼层 发表于 2021-10-25 19:42:40 |阅读模式 打印 上一主题 下一主题
本文实例为大家分享了PHPMAILER实现PHP发邮件功能的详细代码,供大家参考,详细内容如下
第一步:打开网址下载PHPMailer,PHPMailer 必要 PHP 的 sockets 扩展支持,而登录 QQ 邮箱 SMTP 服务器则必须通过 SSL 加密的, PHP 还得包罗 openssl 的支持。

第二步:利用 phpinfo() 函数查察 socket 和 openssl 扩展信息(wamp server 默认启用了该扩展)。
openssl 假如没有开启请打开php.ini文件进行开启
起首查抄php.ini中;extension=php_openssl.dll是否存在, 假如存在的话去掉前面的注释符‘;', 假如不存在这行,那么添加extension=php_openssl.dll。

PHPMailer 焦点文件

第三步:QQ 邮箱设置
全部的主流邮箱都支持 SMTP 协议,但并非全部邮箱都默认开启,您可以在邮箱的设置内里手动开启。
第三方服务在提供了账号和暗码之后就可以登录 SMTP 服务器,通过它来控制邮件的中转方式。
第四步:开启 SMTP 服务

选择 IMAP/SMTP 服务,点击开启服务
第五步:验证密保

发送短信“配置邮件客户端”至1069-0700-69
第六步:获取授权码

SMTP 服务器认证暗码,必要妥善保管(PS:暗码直接没有空格)
第七步:PHP发送邮件

基本代码
下面的代码演示了 PHPMailer 的利用方法,注意 PHPMailer 实例的配置过程。
  1. // 引入PHPMailer的核心文件
  2. require_once("PHPMailer/class.phpmailer.php");
  3. require_once("PHPMailer/class.smtp.php");
  4. // 实例化PHPMailer核心类
  5. $mail = new PHPMailer();
  6. // 是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式
  7. $mail->SMTPDebug = 1;
  8. // 使用smtp鉴权方式发送邮件
  9. $mail->isSMTP();
  10. // smtp需要鉴权 这个必须是true
  11. $mail->SMTPAuth = true;
  12. // 链接qq域名邮箱的服务器地址
  13. $mail->Host = 'smtp.qq.com';
  14. // 设置使用ssl加密方式登录鉴权
  15. $mail->SMTPSecure = 'ssl';
  16. // 设置ssl连接smtp服务器的远程服务器端口号
  17. $mail->Port = 465;
  18. // 设置发送的邮件的编码
  19. $mail->CharSet = 'UTF-8';
  20. // 设置发件人昵称 显示在收件人邮件的发件人邮箱地址前的发件人姓名
  21. $mail->FromName = '发件人昵称';
  22. // smtp登录的账号 QQ邮箱即可
  23. $mail->Username = '12345678@qq.com';
  24. // smtp登录的密码 使用生成的授权码
  25. $mail->Password = '**********';
  26. // 设置发件人邮箱地址 同登录账号
  27. $mail->From = '12345678@qq.com';
  28. // 邮件正文是否为html编码 注意此处是一个方法
  29. $mail->isHTML(true);
  30. // 设置收件人邮箱地址
  31. $mail->addAddress('87654321@qq.com');
  32. // 添加多个收件人 则多次调用方法即可
  33. $mail->addAddress('87654321@163.com');
  34. // 添加该邮件的主题
  35. $mail->Subject = '邮件主题';
  36. // 添加邮件正文
  37. $mail->Body = '<h1>Hello World</h1>';
  38. // 为该邮件添加附件
  39. $mail->addAttachment('./example.pdf');
  40. // 发送邮件 返回状态
  41. $status = $mail->send(); 
复制代码
我在thinkphp5.0中利用代码
  1. /**
  2. * 邮件发送
  3. * @param $to 接收人
  4. * @param string $subject 邮件标题
  5. * @param string $content 邮件内容(html模板渲染后的内容)
  6. * @throws Exception
  7. * @throws phpmailerException
  8. */
  9. function send_email($to,$subject='',$content=''){
  10.   vendor('phpmailer.PHPMailerAutoload');
  11. //require_once 'vendor/phpmailer/PHPMailerAutoload.php';
  12.   $mail = new PHPMailer;
  13.   $arr = db('config')->where('inc_type','smtp')->select();
  14.   $config = convert_arr_kv($arr,'name','value');
  15.   $mail->CharSet = 'UTF-8'; //设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码
  16.   $mail->isSMTP();
  17. //Enable SMTP debugging
  18. // 0 = off (for production use)
  19. // 1 = client messages
  20. // 2 = client and server messages
  21.   $mail->SMTPDebug = 0;
  22. //调试输出格式
  23. //$mail->Debugoutput = 'html';
  24. //smtp服务器
  25.   $mail->Host = $config['smtp_server'];
  26. //端口 - likely to be 25, 465 or 587
  27.   $mail->Port = $config['smtp_port'];
  28.   if($mail->Port === 465) $mail->SMTPSecure = 'ssl';// 使用安全协议
  29. //Whether to use SMTP authentication
  30.   $mail->SMTPAuth = true;
  31. //发送邮箱
  32.   $mail->Username = $config['smtp_user'];
  33. //密码
  34.   $mail->Password = $config['smtp_pwd'];
  35. //Set who the message is to be sent from
  36.   $mail->setFrom($config['smtp_user'],$config['email_id']);
  37. //回复地址
  38. //$mail->addReplyTo('replyto@example.com', 'First Last');
  39. //接收邮件方
  40.   if(is_array($to)){
  41.     foreach ($to as $v){
  42.       $mail->addAddress($v);
  43.     }
  44.   }else{
  45.     $mail->addAddress($to);
  46.   }
  47.   $mail->isHTML(true);// send as HTML
  48. //标题
  49.   $mail->Subject = $subject;
  50. //HTML内容转换
  51.   $mail->msgHTML($content);
  52. //Replace the plain text body with one created manually
  53. //$mail->AltBody = 'This is a plain-text message body';
  54. //添加附件
  55. //$mail->addAttachment('images/phpmailer_mini.png');
  56. //send the message, check for errors
  57.   return $mail->send();
  58. }
复制代码
以上就是本文的全部内容,盼望对大家的学习有所帮助,也盼望大家多多支持草根技术分享。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作