服务热线 400-660-5555

成都网站建设
首页 站内资讯

成都网站建设

站内资讯
成都网站建设 / 站内资讯 / 行业资讯 / 正文

网站系统实现接收邮件功能

来源: All文章
发布时间:2023-05-05 09:30:05

  我们在网站开发中实现发送邮件经常遇到,也有很多比较成熟的解决方案,那么接收邮件功能呢?這个功能需求开发虽然比较少遇见,也很少客户咨询,但是能否实现呢?实际是可以的。

  你看Foxmail客户端也能接收邮件,说明邮件系统都有这种服务,支持第三方通过一定的认证方式后,可以把邮件信息给第三方。

  具体如何实现呢?下面中企动力给大家介绍PHP如何获取QQ邮件。

  获取邮件需要准备的基本资料是,邮箱的账号和获取密码,然后设置邮箱开启imap功能,需要注意的是:获取密码是imap功能设置提供的密码,不是登陆密码。

  邮箱设置方法如下:

  进入邮箱-顶部菜单-【设置】-【账户】选项卡-【POP3/IMAP/TP/Exchange/CardD/CalD服务】项,如下截图,开启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

  makeinstall

  如果出错安装yum-yinstalllibc-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代码如下:

  ?ph

  ini_set(display_errors,On);

  error_reporting(E_ERROR);

  header(Content-type:text/html;charset=utf-8);

  $mailServer='imap.qq.com';//IMAPserveraddress

  $mailLink={{$mailServer}:143}INBOX;//143istheportwhennotSSL

  $mailUser=$_GET['email'];//emailaddress

  $mailPass=$_GET['pwd'];//clientauthorizationcode

  $mail_i=intval($_GET['index']);

  if($mailUser!=''$mailPass!=''){

  $Email=newEmail();

  $conn=$Email-mailConnect($mailServer,143,$mailUser,$mailPass);

  }

  functiondecode_title($str){

  $arr=imap_mime_header_decode($str);

  return$arr[0]-text;

  }

  functiondecode_attach($str){

  $arr=imap_mime_header_decode($str);

  returniconv($arr[0]-charset,utf-8,$arr[0]-text);

  }

  ?

  !doctypehtml

  htmllang=zh-CN

  head

  metacharset=utf-8

  metahttp-equiv=X-UA-Compatiblecontent=IE=edge

  metaname=viewportcontent=width=device-width,initial-scale=1

  !--上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后!--

  title中企动力-接收邮件测试/title

  /head

  body

  pstyle=padding:40px;width:400px;

  formmethod=getaction=

  pclass=input-grou

  span class=input-group-addonid=basic-addon1邮箱账号:/span

  inputtype=textclass=form-controlvalue=?phpecho$mailUser;?name=emailplaceholder=输入QQ邮箱账号:aria-describedby=basic-addon1

  /

  pclass=input-grou

  span class=input-group-addonid=basic-addon1邮箱密码:/span

  inputtype=textclass=form-controlvalue=?phpecho$mailPass;?name=pwdplaceholder=QQ邮箱密码:aria-describedby=basic-addon1

  /

  pclass=input-grou

  span class=input-group-addonid=basic-addon1邮件开始数:/span

  inputtype=numberclass=form-controlvalue=?phpecho$mail_i;?name=indexplaceholder=邮件开始数value=1aria-describedby=basic-addon1

  /

  buttontype=submitclass=btnbtn-default获取邮件/button

  inputtype=hiddenname=actionvalue=get/

  /form

  邮箱密码是邮箱设置的imap密码,一次获取6封邮件

  /

  ?ph

  if($conn){

  echo'总邮件数:'.$Email-mailTotalCount().'br';

  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'tableborder=1trtdb日期:/b'.date('Y-m-dH:i:s',strtotime($mailHeader['date'])).'/td/trtrtdb发件人:/b'.$mailHeader['from'].'/td/trtrtdb标题:/b'.$subject.'/td/tr';

  echo'trtd正文:/td/trtrtd'.$Email-getBody($i).'/td/trtrtd是否已读:'.$Email-mailRead($i).'ID:'.$mailHeader['id'].'/td/tr';

  echo'trtd附件:';

  foreach($attach_listas$attach){

  echo'ahref=attach/'.decode_attach($attach).'target=_blank'.decode_attach($attach).'/a';

  }

  if(count($attach_list)==0){

  echo'无附件';

  }

  echo'/td/tr';

  echo'/table';

  }

  }

  就这样实现了PHP获取QQ邮件的功能,截图如下

* 文章来源于网络,如有侵权,请联系客服删除处理。
在线 咨询

添加动力小姐姐微信

微信 咨询

电话咨询

400-660-5555

我们联系您

电话 咨询
微信扫码关注动力小姐姐 X
qr