PHP Classes

File: apps/newswall/showatt.php

Recommend this page to a friend!
  Classes of Mark Richards   CliqonV4   apps/newswall/showatt.php   Download  
File: apps/newswall/showatt.php
Role: Example script
Content type: text/plain
Description: Example script
Class: CliqonV4
Framework with modules to build Web applications
Author: By
Last change:
Date: 6 years ago
Size: 3,413 bytes
 

Contents

Class file image Download
<?php
  $vars
=array(); if(file_exists("variable.php.ini")) include("variable.php.ini"); else include("standard.php.ini");
 
$references=array(); if(file_exists("varreferences.php.ini")) include("varreferences.php.ini");
 
$accounts=array(); if(file_exists("varmails.php.ini")) include("varmails.php.ini");
  include(
"functions.php");
 
 
$acc=$accounts[($_GET["source"]*-1)-1];
 
$msgno=$_GET["id"];
 
$filno=$_GET["file"];

 
$accdata=explode(":",$acc);
 
$accdate="";
  if(
$accdata[3]=="imap")
   
$ServerName = "{".$accdata[0]."/imap:143}INBOX"; // For a IMAP connection (PORT 143)
 
else
   
$ServerName = "{".$accdata[0]."/pop3:110}INBOX"; // For a POP3 connection (PORT 110)

 
if($accdata[0]=="imap.gmail.com")
   
$ServerName = "{".$accdata[0].":993/imap/ssl/novalidate-cert}INBOX"; // gmail IMAP
 
if($accdata[0]=="pop.gmail.com")
   
$ServerName = "{".$accdata[0].":995/pop3/ssl/novalidate-cert}INBOX"; // gmail POP3

 
$UserName = $accdata[1];
 
$PassWord = $accdata[2];
  if(
$mbox = imap_open($ServerName, $UserName,$PassWord)) {
   
$dataAtt = get_att($mbox, $msgno);
    if(
is_array($dataAtt)) {
     
$attcount=0;
      foreach(
$dataAtt as $oneAtt){
       
$attcount++;
        if(
$attcount==$filno) {
           
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
           
header("Content-Type: application/octet-stream");
           
header("Content-Disposition: attachment; filename=".$oneAtt["name"]);
          print
$oneAtt["attachment"];
        }
      }
    }
  }
  function
get_att($stream, $msg_number) {
   
$structure = imap_fetchstructure($stream, $msg_number);
   
$attachments = array();
   
$retattachments = array();
    if(isset(
$structure->parts) && count($structure->parts)) {

        for(
$i = 0; $i < count($structure->parts); $i++) {

           
$attachments[$i] = array(
               
'is_attachment' => false,
               
'filename' => '',
               
'name' => '',
               
'attachment' => ''
           
);

            if(
$structure->parts[$i]->ifdparameters) {
                foreach(
$structure->parts[$i]->dparameters as $object) {
                    if(
strtolower($object->attribute) == 'filename') {
                       
$attachments[$i]['is_attachment'] = true;
                       
$attachments[$i]['filename'] = $object->value;
                    }
                }
            }

            if(
$structure->parts[$i]->ifparameters) {
                foreach(
$structure->parts[$i]->parameters as $object) {
                    if(
strtolower($object->attribute) == 'name') {
                       
$attachments[$i]['is_attachment'] = true;
                       
$attachments[$i]['name'] = $object->value;
                    }
                }
            }

            if(
$attachments[$i]['is_attachment']) {
          if(
$attachments[$i]['name']=="" AND $attachments[$i]['filename']!="")
           
$attachments[$i]['name']=$attachments[$i]['filename'];
          if(
$attachments[$i]['filename']=="" AND $attachments[$i]['name']!="")
           
$attachments[$i]['filename']=$attachments[$i]['name'];
               
$attachments[$i]['attachment'] = imap_fetchbody($stream, $msg_number, $i+1);
                if(
$structure->parts[$i]->encoding == 3) { // 3 = BASE64
                   
$attachments[$i]['attachment'] = base64_decode($attachments[$i]['attachment']);
                }
                elseif(
$structure->parts[$i]->encoding == 4) { // 4 = QUOTED-PRINTABLE
                   
$attachments[$i]['attachment'] = quoted_printable_decode($attachments[$i]['attachment']);
                }
         
$retattachments[]=$attachments[$i];
            }
        }
    }
    return
$retattachments;
  }
?>