菜单

Read POP3/IMAP attachment with PHP

2011年05月5日 - imap

用法:

<?

   //$ServerName = "{localhost:143/imap}INBOX"; // For a IMAP connection    (PORT 143)
   //$ServerName = "{localhost:110/pop3}INBOX"; // For a POP3 connection    (PORT 110)

require_once(“attachmentread.class.php”);
$host=”{my.mailserver.net:110/pop3}”; // pop3host
$login=”user1″; //pop3 login
$password=”passwd1″; //pop3 password
$savedirpath=”” ; // attachement will save in same directory where scripts run othrwise give abs path
$jk=new readattachment(); // Creating instance of class####
$jk->getdata($host,$login,$password,$savedirpath); // calling member function

?>

<?

######################################

#Coded By Jijo Last Update Date[Jan/19/06]

#####################################
##########################################################

###################### Class readattachment ###############
class readattachment
{

function getdecodevalue($message,$coding)
{
if ($coding == 0)
{
$message = imap_8bit($message);
}
elseif ($coding == 1)
{
$message = imap_8bit($message);
}
elseif ($coding == 2)
{
$message = imap_binary($message);
}
elseif ($coding == 3)
{
$message=imap_base64($message);
}
elseif ($coding == 4)
{
$message = imap_qprint($message);
}
elseif ($coding == 5)
{
$message = imap_base64($message);
}
return $message;
}

function getdata($host,$login,$password,$savedirpath)
{
$mbox = imap_open ($host, $login, $password) or die(“can’t connect: ” . imap_last_error());
$message = array();
$message[“attachment”][“type”][0] = “text”;
$message[“attachment”][“type”][1] = “multipart”;
$message[“attachment”][“type”][2] = “message”;
$message[“attachment”][“type”][3] = “application”;
$message[“attachment”][“type”][4] = “audio”;
$message[“attachment”][“type”][5] = “image”;
$message[“attachment”][“type”][6] = “video”;
$message[“attachment”][“type”][7] = “other”;

for ($jk = 1; $jk <= imap_num_msg($mbox); $jk++)
{
$structure = imap_fetchstructure($mbox, $jk );
$parts = $structure->parts;
$fpos=2;
for($i = 1; $i < count($parts); $i++)
{
$message[“pid”][$i] = ($i);
$part = $parts[$i];

if($part->disposition == “ATTACHMENT”)
{

$message[“type”][$i] = $message[“attachment”][“type”][$part->type] . “/” . strtolower($part->subtype);
$message[“subtype”][$i] = strtolower($part->subtype);
$ext=$part->subtype;
$params = $part->dparameters;
$filename=$part->dparameters[0]->value;

$mege=””;
$data=””;
$mege = imap_fetchbody($mbox,$jk,$fpos);
$filename=”$filename”;
$fp=fopen($filename,w);
$data=$this->getdecodevalue($mege,$part->type);
fputs($fp,$data);
fclose($fp);
$fpos+=1;

}

}
//imap_delete tags a message for deletion
//imap_delete($mbox,$jk);

}
// imap_expunge deletes all tagged messages
//imap_expunge($mbox);
imap_close($mbox);
}
}

?>

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注