zoukankan      html  css  js  c++  java
  • TP5实现邮件发送(PHP 利用QQ邮箱发送邮件「PHPMailer」)

    修改php.ini中的一些配置

     extension=php_openssl.dll  //前面的分号去掉,
     allow_url_fopen = Off   改为   allow_url_fopen = On

    PHPMailer

    PHPMailer 是一个封装好的 PHP 邮件发送类,支持发送 HTML 内容的电子邮件,以及可以添加附件发送,并不像 PHP 本身 mail() 函数需要服务器环境支持,您只需要设置邮件服务器以相关信息就能实现邮件发送功能。

    PHPMailer 项目地址https://github.com/PHPMailer/PHPMailer

    PHP扩展支持

    PHPMailer 需要 PHP 的 sockets 扩展支持,而登录 QQ 邮箱 SMTP 服务器则必须通过 SSL 加密,故 PHP 还得包含 openssl 的支持。

    ↑ 使用 phpinfo() 函数查看 socket 和 openssl 扩展信息(wamp server 默认启用了该扩展)。

    整理后的PHPMailer 核心文件

    我们需要下载的phpmailer文件:

    链接:https://pan.baidu.com/s/1fNF7HHnk-RxVyPupxTdGOQ
    提取码:9b95
    将下载的压缩包解压到当前TP5框架下的extend文件夹中

    QQ 邮箱中的 设置

    选择账户

    所有的主流邮箱都支持 SMTP 协议,但并非所有邮箱都默认开启,您可以在邮箱的设置里面手动开启。

    第三方服务在提供了账号和密码之后就可以登录 SMTP 服务器,通过它来控制邮件的中转方式。

    开启 SMTP 服务

    ↑ 选择 IMAP/SMTP 服务,点击开启服务。

    验证密保后获取授权码

    PHP发送邮件

    基本代码

    下面的代码演示了 PHPMailer 的使用方法,注意 PHPMailer 实例的配置过程。

    Loader::import('phpmailer.phpmailer');//加载extend中的自定义类
    $mail = new PHPMailerPHPMailer(); //实例化
    header("content-type:text/html;charset=utf-8");
    // 使用SMTP方式发送
    $mail->IsSMTP();
    // 设置邮件的字符编码
    $mail->CharSet='UTF-8';
    // 企业邮局域名
    $mail->Host = 'smtp.qq.com';
    //---------qq邮箱需要的------//设置使用ssl加密方式登录鉴权
    $mail->SMTPSecure = 'ssl';
    //设置ssl连接smtp服务器的远程服务器端口号 可选465或587
    $mail->Port = 465;//---------qq邮箱需要的------
    // 启用SMTP验证功能
    $mail->SMTPAuth = true;
    //邮件发送人的用户名(请填写完整的email地址)
    $mail->Username = '123456789@qq.com' ;
    // 邮件发送人的 密码 (授权码)
    $mail->Password = '修改为自己的授权码';  //修改为自己的授权码
    //邮件发送者email地址
    $mail->From ="123456789@qq.com";
    //发送邮件人的标题
    $mail->FromName ="123456789@qq.com";
    //收件人的邮箱 给谁发邮件
    $email_addr = "收件人邮箱";
    //收件人地址,可以替换成任何想要接收邮件的email信箱,格式是AddAddress("收件人email","收件人姓名")
    $mail->AddAddress("$email_addr", substr(  $email_addr, 0 , strpos($email_addr ,'@')));
    //回复的地址
    $mail->AddReplyTo('123456789@qq.com' , "" );
    $mail->AddAttachment("./mail.rar"); // 添加附件
    //set email format to HTML //是否使用HTML格式
    $mail->IsHTML(true);
    //邮件标题
    $mail->Subject = '邮件标题';
    //邮件内容
    $mail->Body =  "<p style='color:red'>" . '邮件内容' . '</p>';
    //附加信息,可以省略
    $mail->AltBody = '';
    // 添加附件,并指定名称
    $mail->AddAttachment( './error404.php' ,'php文件');
    //设置邮件中的图片
    $mail->AddEmbeddedImage("shuai.jpg", "my-attach", "shuai.jpg");
            if( !$mail->Send() ){
                $mail_return_arr['mark'] = false ;
                $str  =  "邮件发送失败. <p>";
                $str .= "错误原因: " . $mail->ErrorInfo;
                $mail_return_arr['info'] = $str ;
            }else{
                $mail_return_arr['mark'] = true ;
                $str =  "邮件发送成功";
                $mail_return_arr['info'] = $str ;
            }
            echo "<pre>";
            print_r( $mail_return_arr);

    修改配置项自己需要即可!

  • 相关阅读:
    使用匿名内部类和lamda的方式创建线程
    匿名内部类与lamda表达式
    机器学习中数据量多少与模型过拟合欠拟合之间的关系
    设计模式和java实现
    八大排序算法汇总——java实现
    java多线程并发编程中的锁
    java NIO
    网络通信引擎ICE的使用
    机器学习算法汇总大梳理
    处理样本不均衡数据
  • 原文地址:https://www.cnblogs.com/wxy0126/p/11381681.html
Copyright © 2011-2022 走看看