从php下载gmail附件

从php下载gmail附件,php,gmail,imap,Php,Gmail,Imap,你能告诉我,如何使用php从gmail帐户下载附件吗? 谢谢您可以使用php pop或imap客户端从该imap解决方案中提取邮件和附件 /* connect to gmail */ $hostname = '{imap.gmail.com:993/imap/ssl}INBOX'; $username = 'davidwalshblog@gmail.com'; $password = 'davidwalsh'; /* try to connect */ $inbox = imap_open($

你能告诉我,如何使用php从gmail帐户下载附件吗?
谢谢

您可以使用php pop或imap客户端从该imap解决方案中提取邮件和附件

/* connect to gmail */
$hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
$username = 'davidwalshblog@gmail.com';
$password = 'davidwalsh';

/* try to connect */
$inbox = imap_open($hostname,$username,$password) or die('Cannot connect to Gmail: ' . imap_last_error());

/* grab emails */
$emails = imap_search($inbox,'ALL');

/* if emails are returned, cycle through each... */
if($emails) {

    /* begin output var */
    $output = '';

    /* put the newest emails on top */
    rsort($emails);

    /* for every email... */
    foreach($emails as $email_number) {

        /* get information specific to this email */
        $overview = imap_fetch_overview($inbox,$email_number,0);
        $message = imap_fetchbody($inbox,$email_number,2);

        /* output the email header information */
        $output.= '<div class="toggler '.($overview[0]->seen ? 'read' : 'unread').'">';
        $output.= '<span class="subject">'.$overview[0]->subject.'</span> ';
        $output.= '<span class="from">'.$overview[0]->from.'</span>';
        $output.= '<span class="date">on '.$overview[0]->date.'</span>';
        $output.= '</div>';

        /* output the email body */
        $output.= '<div class="body">'.$message.'</div>';
    }

    echo $output;
} 

/* close the connection */
imap_close($inbox);
/*连接到gmail*/
$hostname='{imap.gmail.com:993/imap/ssl}收件箱';
$username='1davidwalshblog@gmail.com';
$password='davidwalsh';
/*尝试连接*/
$inbox=imap_open($hostname,$username,$password)或die('cannotconnecttogmail:'。imap_last_error());
/*抓取电子邮件*/
$emails=imap_搜索($inbox,'ALL');
/*如果电子邮件被返回,请循环浏览每个*/
如果($电子邮件){
/*开始输出变量*/
$output='';
/*把最新的电子邮件放在最上面*/
rsort(电子邮件);
/*对于每封电子邮件*/
foreach($email作为$email\u编号){
/*获取此电子邮件的特定信息*/
$overview=imap\U fetch\U overview($inbox,$email\u number,0);
$message=imap\u fetchbody($inbox,$email\u number,2);
/*输出电子邮件标题信息*/
$output.='';
$output.=''.$overview[0]->subject';
$output.=''.$overview[0]->from';
$output.='on'.$overview[0]->date'.';
$output.='';
/*输出电子邮件正文*/
$output.=''.$message';
}
echo$输出;
} 
/*关闭连接*/
imap_关闭($收件箱);

您必须将附件控制添加到it中,并且您可以阅读此内容,因为从中可以看到此源代码

,正如其他回答者所述,建议使用IMAP解决方案,并可在中找到。确保检查防火墙,并在PHP安装中启用OpenSSL和IMAP

关于如何使用
imap\u fetchstructure
分析每封电子邮件的结构,有优秀的代码参考。在每封邮件的结构中都有附件。用户在上提供的注释特别有用(文档也是如此)

基本上,你必须

  • 通过结构部件进行循环
  • 确定其中哪些是附件
  • 酌情解码

不同的电子邮件客户端会有稍微不同的结构,但只要稍加努力就不难了。然后,数据可以按照您的选择进行处理。

imap比pop更好,gmail支持此-1这是重复的代码,并且没有解决关于附件的原始问题(“如何使用php从gmail帐户下载附件?”)。你说“添加附件控制”,但是……怎么做?@Steve:从这一点上,你可以简单地使用php文档,只需几行代码就可以从附件下载你想要的内容,如果你不相信,那么请看绿色标记我很抱歉,Svisstack,我必须同意@Ben:代码没有下载附件。您建议的链接不建议任何有关下载附件的代码。