王顺宝 發表於 2019-6-10 17:26:00

PHP 调用qq邮箱接口

<p><span style="font-size: 18px">html代码</span></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">&lt;!</span><span style="color: rgba(255, 0, 255, 1)">DOCTYPE html</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">html</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">head</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
    <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">meta </span><span style="color: rgba(255, 0, 0, 1)">charset</span><span style="color: rgba(0, 0, 255, 1)">="UTF-8"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
    <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">title</span><span style="color: rgba(0, 0, 255, 1)">&gt;&lt;/</span><span style="color: rgba(128, 0, 0, 1)">title</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
    <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">script </span><span style="color: rgba(255, 0, 0, 1)">src</span><span style="color: rgba(0, 0, 255, 1)">="https://code.jquery.com/jquery-1.9.1.min.js"</span><span style="color: rgba(0, 0, 255, 1)">&gt;&lt;/</span><span style="color: rgba(128, 0, 0, 1)">script</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">head</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">body</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">script </span><span style="color: rgba(255, 0, 0, 1)">type</span><span style="color: rgba(0, 0, 255, 1)">="text/javascript"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
    <span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 255, 1)">function</span><span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 0, 1)"> yx(){
      $.ajax({
            type:</span><span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 0, 1)">"</span><span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 0, 1)">post</span><span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 0, 1)">"</span><span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 0, 1)">,
            url:</span><span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 0, 1)">"</span><span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 0, 1)">./mailbox.php</span><span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 0, 1)">"</span><span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 0, 1)">,
            data:{},
            jsonType:</span><span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 0, 1)">"</span><span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 0, 1)">json</span><span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 0, 1)">"</span><span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 0, 1)">,
            success:</span><span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 255, 1)">function</span><span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 0, 1)">(mag){
            </span><span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 255, 1)">if</span><span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 0, 1)"> (mag</span><span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 0, 1)">==</span><span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 0, 1)">1</span><span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 0, 1)">) {
            alert(</span><span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 0, 1)">'</span><span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 0, 1)">发送成功</span><span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 0, 1)">'</span><span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 0, 1)">);
            }</span><span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 255, 1)">else</span><span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 0, 1)">{
            alert(mag);
            }
            }
      })
    }
</span><span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">script</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
    <span style="color: rgba(0, 128, 0, 1)">&lt;!--</span><span style="color: rgba(0, 128, 0, 1)"> 点击触发yx方法调用php发送邮件 </span><span style="color: rgba(0, 128, 0, 1)">--&gt;</span>
<span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">a </span><span style="color: rgba(255, 0, 0, 1)">href</span><span style="color: rgba(0, 0, 255, 1)">="javascript:;"</span><span style="color: rgba(255, 0, 0, 1)"> onclick</span><span style="color: rgba(0, 0, 255, 1)">="yx()"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>邮箱<span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">a</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>

<span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">body</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">html</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span></pre>
</div>
<p><span style="font-size: 18px">PHP代码如下</span></p>
<div class="cnblogs_code">
<pre>&lt;?<span style="color: rgba(0, 0, 0, 1)">php

</span><span style="color: rgba(0, 0, 255, 1)">function</span> sendMail(<span style="color: rgba(128, 0, 128, 1)">$to</span>,<span style="color: rgba(128, 0, 128, 1)">$title</span>,<span style="color: rgba(128, 0, 128, 1)">$content</span><span style="color: rgba(0, 0, 0, 1)">){
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">引入PHPMailer的核心文件 使用require_once包含避免出现PHPMailer类重复定义的警告</span>
    <span style="color: rgba(0, 0, 255, 1)">require_once</span>("./class.phpmailer.php"<span style="color: rgba(0, 0, 0, 1)">);
    </span><span style="color: rgba(0, 0, 255, 1)">require_once</span>("./class.smtp.php"<span style="color: rgba(0, 0, 0, 1)">);
    </span><span style="color: rgba(128, 0, 128, 1)">$mail</span> = <span style="color: rgba(0, 0, 255, 1)">new</span> PHPMailer();<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">实例化PHPMailer核心类</span>
    <span style="color: rgba(128, 0, 128, 1)">$mail</span>-&gt;SMTPDebug = 1;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式</span>
    <span style="color: rgba(128, 0, 128, 1)">$mail</span>-&gt;isSMTP();<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">使用smtp鉴权方式发送邮件</span>
    <span style="color: rgba(128, 0, 128, 1)">$mail</span>-&gt;SMTPAuth=<span style="color: rgba(0, 0, 255, 1)">true</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">smtp需要鉴权 这个必须是true</span>
    <span style="color: rgba(128, 0, 128, 1)">$mail</span>-&gt;Host = 'smtp.qq.com';<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">链接qq域名邮箱的服务器地址</span>
    <span style="color: rgba(128, 0, 128, 1)">$mail</span>-&gt;SMTPSecure = 'ssl';<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">设置使用ssl加密方式登录鉴权</span>
    <span style="color: rgba(128, 0, 128, 1)">$mail</span>-&gt;Port = 465;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">设置ssl连接smtp服务器的远程服务器端口号,以前的默认是25,但是现在新的好像已经不可用了 可选465或587</span>
    <span style="color: rgba(128, 0, 128, 1)">$mail</span>-&gt;CharSet = 'UTF-8';<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">设置发送的邮件的编码 可选GB2312 我喜欢utf-8 据说utf8在某些客户端收信下会乱码</span>
    <span style="color: rgba(128, 0, 128, 1)">$mail</span>-&gt;FromName = '冷晨';<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">设置发件人姓名(昵称) 任意内容,显示在收件人邮件的发件人邮箱地址前的发件人姓名</span>
    <span style="color: rgba(128, 0, 128, 1)">$mail</span>-&gt;Username ='12059991@qq.com';<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">smtp登录的账号 这里填入字符串格式的qq号即可</span>
    <span style="color: rgba(128, 0, 128, 1)">$mail</span>-&gt;Password = '你自己的授权码';<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">smtp登录的密码 使用生成的授权码(就刚才叫你保存的最新的授权码)【非常重要:在网页上登陆邮箱后在设置中去获取此授权码】</span>
    <span style="color: rgba(128, 0, 128, 1)">$mail</span>-&gt;From = '12059991@qq.com';<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">设置发件人邮箱地址 这里填入上述提到的“发件人邮箱”</span>
    <span style="color: rgba(128, 0, 128, 1)">$mail</span>-&gt;isHTML(<span style="color: rgba(0, 0, 255, 1)">true</span>);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">邮件正文是否为html编码 注意此处是一个方法 不再是属性 true或false</span>
    <span style="color: rgba(128, 0, 128, 1)">$mail</span>-&gt;addAddress(<span style="color: rgba(128, 0, 128, 1)">$to</span>);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">设置收件人邮箱地址</span>
    <span style="color: rgba(128, 0, 128, 1)">$mail</span>-&gt;Subject = <span style="color: rgba(128, 0, 128, 1)">$title</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">添加该邮件的主题</span>
    <span style="color: rgba(128, 0, 128, 1)">$mail</span>-&gt;Body = <span style="color: rgba(128, 0, 128, 1)">$content</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">添加邮件正文 上方将isHTML设置成了true,则可以是完整的html字符串 如:使用file_get_contents函数读取本地的html文件
    //简单的判断与提示信息</span>
    <span style="color: rgba(0, 0, 255, 1)">if</span>(<span style="color: rgba(128, 0, 128, 1)">$mail</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">send()) {
      </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">;
    }</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">{
      </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
    }
}
date_default_timezone_set(</span>'PRC'<span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">header</span>("Content-Type:text/html;charset=utf-8"<span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(128, 0, 128, 1)">$flag</span> = sendMail('12059991@qq.com','测试','测试邮件'<span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 0, 255, 1)">if</span>(<span style="color: rgba(128, 0, 128, 1)">$flag</span><span style="color: rgba(0, 0, 0, 1)">){
    </span><span style="color: rgba(0, 0, 255, 1)">echo</span> "发送邮件成功!"<span style="color: rgba(0, 0, 0, 1)">;
}</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">{
    </span><span style="color: rgba(0, 0, 255, 1)">echo</span> "发送邮件失败!"<span style="color: rgba(0, 0, 0, 1)">;
}

</span>?&gt;</pre>
</div>
<p>&nbsp;</p>
<p><span style="font-size: 18px">然后qq邮箱的设置</span></p>
<p><span style="font-size: 18px"><img src="https://img2018.cnblogs.com/blog/1675418/201906/1675418-20190610171955295-1269768829.png" alt=""></span></p>
<p>&nbsp;</p>
<p><span style="font-size: 18px">需要把这两个开启&nbsp; 授权码也是在这里获取</span></p>
<p><span style="font-size: 18px"><img src="https://img2018.cnblogs.com/blog/1675418/201906/1675418-20190610172031319-1243227411.png" alt=""></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;<img src="https://img2020.cnblogs.com/blog/1675418/202101/1675418-20210118150926795-597240824.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p><span style="font-size: 18px">&nbsp;授权码是获取这个</span></p>
<p>&nbsp;</p>
<p><span style="font-size: 18px">然后php需要的两个文件</span></p>
<pre><span style="font-size: 16px">class.phpmailer.php和class.smtp.php下载地址<br></span></pre>
<p>链接:https://pan.baidu.com/s/1_WJPDlHy-LIJ21L4oV0Gow <br>提取码:u1s8</p>
<p>&nbsp;</p>
<p><span style="font-size: 18px"><strong>然后注意环境需要开启ssl</strong></span><span style="font-size: 16px"><br></span></p>
<p><span style="font-size: 18px">1.打开php配置文件php.ini;<br><br>2.找到;extension=php_openssl.dll,去掉前面的分号;如果不存在则加入此项;<br><br>3.将php根目录下的ssleay32.dll和libeay32.dll文件,以及php/ext下的php_openssl.dll&nbsp;这三个文件复制,然后粘贴到:C:/WINDOWS/system32文件夹下;<br><br>4.重启web服务器<br>---------------------&nbsp;<br>按照以上操作的,还是报错</span></p>
<p><span style="font-size: 18px; background-color: rgba(255, 255, 255, 1); color: rgba(255, 0, 0, 1)"><span style="background-color: rgba(255, 255, 255, 1); color: rgba(255, 0, 0, 1)">使用phpStudy配置SSL支持Https</span></span></p>
<pre><span style="font-size: 16px">&nbsp;</span></pre>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/lcxin/p/10999054.html
頁: [1]
查看完整版本: PHP 调用qq邮箱接口