我们在网站开辟中完成发送邮件经常碰到,也有良多比力成熟的处理筹划,那末接纳邮件成效呢?這个成效需求开辟虽然比力少碰见,也很少客户征询,然则可否完成呢?实际是能够的。
你看Foxmail客户端也能接纳邮件,阐明邮件系统都有这类效劳,支撑第三方经由过程一定的认证体式样式后,能够把邮件信息给第三方。
详细如何完成呢?下面方维搜集给大家引见PHP如何得到QQ邮件。
得到邮件需求预备的基础资料是,邮箱的账号和得到暗码,然后设置邮箱开启imap成效,需求寄望的是:得到暗码是imap成效设置供给的暗码,不是上岸暗码。
邮箱设置方式以下:
进入邮箱-顶部菜单-【设置】 - 【账户】选项卡 - 【POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV效劳】项,以下截图,开启IMAP效劳,经由过程手机考证码认证后会给你一个得到暗码。
有了账号名和得到暗码后,就是法式编写和效劳器的题目,一般状态下PHP没有装配IMAP扩展,营销型网站改版,以是大部分效劳器需求开启IMAP扩展,
若是是Windows效劳器,修改PHP.ini文件,把imap扩展后面的分号去掉,然后重启PHP效劳便可。
若是是Linux效劳器则轻微费事一些,这里我碰到的坑是WDCP装配的PHP版本没有带imap扩展文件,需求自身下载,然后上传到对应文件夹后,才能装配。
装配流程以下
起首,用Putty等工具进入linux
进入php源码包ext目次,再进入imap目次
cd /www/wdlinux/apache_php-5.5.38/include/php/ext/imap/
/www/wdlinux/apache_php-5.5.38/bin/phpize
./configure --with-php-config=/www/wdlinux/apache_php-5.5.38/bin/php-config --with-kerberos --with-imap --with-imap-ssl --with-libdir=lib64
make
make install
若是失足 装配 yum -y install libc-client-devel
修改php.ini
[imap]
extension_dir = /www/wdlinux/apache_php-5.5.38/lib/php/extensions/no-debug-non-zts-20121212
extension = imap.so
最后重启php便可
相干读取邮件的PHP代码以下:
ini_set("display_errors", "On");
error_reporting(E_ERROR);
header("Content-type: text/html; charset=utf-8");
$mailServer = 'imap.qq.com'; //IMAP server address
$mailLink = "{{$mailServer}:143}INBOX"; // 143 is the port when not SSL
$mailUser = $_GET['email']; // email address
$mailPass = $_GET['pwd'];// client authorization code
$mail_i = intval($_GET['index']);
if($mailUser != '' && $mailPass != '') {
$Email = new Email();
$conn = $Email->mailConnect($mailServer, 143, $mailUser, $mailPass);
}
function decode_title($str) {
$arr = imap_mime_header_decode($str);
return $arr[0]->text;
}
function decode_attach($str) {
$arr = imap_mime_header_decode($str);
return iconv($arr[0]->charset, "utf-8", $arr[0]->text);
}
?>
方维搜集-接纳邮件测试
if($conn) {
echo '总邮件数:' . $Email->mailTotalCount() . '
';
for ($i = $mail_i; $i < $mail_i+6; $i++) {
$mailHeader = $Email->mailHeader($i);
$attach_list = $Email->getAttach($i, "attach/");
$subject = decode_title($mailHeader['subject']);
// print_r($mailHeader);
echo '';
echo '';
echo '
日期:' . date('Y-m-d H:i:s', strtotime($mailHeader['date'])) . ' |
发件人:' . $mailHeader['from'] . ' |
题目:' . $subject . ' |
正文: |
' . $Email->getBody($i) . ' |
是否是已读:' . $Email->mailRead($i) . ' ID:' . $mailHeader['id'] . ' |
附件:';
foreach ($attach_list as $attach) {
echo '
|