Hoppa till innehåll

Rekommendera inlägg

Gäst Najgor
Skrivet

Hej jag har funderat fall nån vet eller har nån bra guide om hur man hanterar pop3 server i php?

Menar du som en pop3 email client ? Dvs. läsa hotmail/gmail via php?

 

Gäst Najgor
Skrivet

ja typ men att det blir som ett nyhets system som får in allt info...

include_once( 'GmailReader.php' );
$gmail = new GmailReader( '[email protected]', 'password' );
$email = $gmail->getEmailSince('Fri, 5 Sep 2008 9:00:00');

print_r($email);

 

Sen här kommer class filen;

 

<?php
    class GmailReader
{
var $mbox;

function GmailReader( $user, $pass )
{
$this->mbox = imap_open("{imap.gmail.com:993/imap/ssl}INBOX",$user,$pass)
  or die("can't connect: " . imap_last_error());
}

function openSentMail()
{
imap_reopen($this->mbox, "{imap.gmail.com:993/imap/ssl}[Gmail]/Sent Mail" )
  or die("Failed to open Sent Mail: " . imap_last_error());
}

function openMailBox($mailbox)
{
imap_reopen($this->mbox, "{imap.gmail.com:993/imap/ssl}$mailbox" )
  or die("Failed to open $mailbox: " . imap_last_error());
}

function getMailboxInfo()
{
$mc = imap_check($this->mbox);
return $mc;
}

/**
* $date should be a string
* Example Formats Include:
* Fri, 5 Sep 2008 9:00:00
* Fri, 5 Sep 2008
* 5 Sep 2008
* I am sure other's work, just test them out.
*/
function getHeadersSince($date)
{
$uids = $this->getMessageIdsSinceDate($date);
$messages = array();
foreach( $uids as $k=>$uid )
{
  $messages[] = $this->retrieve_header($uid);
}
return $messages;
}

/**
* $date should be a string
* Example Formats Include:
* Fri, 5 Sep 2008 9:00:00
* Fri, 5 Sep 2008
* 5 Sep 2008
* I am sure other's work, just test them out.
*/
function getEmailSince($date)
{
$uids = $this->getMessageIdsSinceDate($date);
$messages = array();
foreach( $uids as $k=>$uid )
{
  $messages[] = $this->retrieve_message($uid);
}
return $messages;
}

function getMessageIdsSinceDate($date)
{
return imap_search( $this->mbox, 'SINCE "'.$date.'"');
}

function retrieve_header($messageid)
{
   $message = array();

   $header = imap_header($this->mbox, $messageid);
   $structure = imap_fetchstructure($this->mbox, $messageid);

   $message['subject'] = $header->subject;
   $message['fromaddress'] =   $header->fromaddress;
   $message['toaddress'] =   $header->toaddress;
   $message['ccaddress'] =   $header->ccaddress;
   $message['date'] =   $header->date;

   return $message;
}

function retrieve_message($messageid)
{
   $message = array();

   $header = imap_header($this->mbox, $messageid);
   $structure = imap_fetchstructure($this->mbox, $messageid);

   $message['subject'] = $header->subject;
   $message['fromaddress'] =   $header->fromaddress;
   $message['toaddress'] =   $header->toaddress;
   $message['ccaddress'] =   $header->ccaddress;
   $message['date'] =   $header->date;

  if ($this->check_type($structure))
  {
   $message['body'] = imap_fetchbody($this->mbox,$messageid,"1"); ## GET THE BODY OF MULTI-PART MESSAGE
   if(!$message['body']) {$message['body'] = '[NO TEXT ENTERED INTO THE MESSAGE]nn';}
  }
  else
  {
   $message['body'] = imap_body($this->mbox, $messageid);
   if(!$message['body']) {$message['body'] = '[NO TEXT ENTERED INTO THE MESSAGE]nn';}
  }

  return $message;
}

function check_type($structure) ## CHECK THE TYPE
{
  if($structure->type == 1)
    {
     return(true); ## YES THIS IS A MULTI-PART MESSAGE
    }
else
    {
     return(false); ## NO THIS IS NOT A MULTI-PART MESSAGE
    }
}

}
?>

 

Du får modifiera den för hur du själv vill ha den då all information visas som mailen har.

Gå med i konversationen

Du kan skriva nu och registrera dig senare. Om du har ett konto, logga in nu för att posta med ditt konto.

Gäst
Svara på det här ämnet...

×   Klistrade in som rich text.   Klistra in som vanlig text istället

  Endast 75 emojis är tillåtet.

×   Din länk har automatiskt inbäddats.   Visa som en länk istället

×   Ditt tidigare innehåll har återställts.   Rensa redigeraren

×   Du kan inte klistra in bilder direkt. Ladda upp eller infoga bilder från URL.

×
  • Skapa ny...