Home > Backend Development > PHP Tutorial > 以前见到的PHP邮件功能,不错还是不错的。_PHP

以前见到的PHP邮件功能,不错还是不错的。_PHP

WBOY
Release: 2016-06-01 12:26:51
Original
971 people have browsed it

P>
  /* Pop3 Functions.
     Smtp Functions. [Added later, going to split]

     For a real example take a look at:
     http://www.triple-it.nl/pop3/

     I have just started to explore the world of PHP3,
     so excuse (and correct me :) if I'm doing something wrong.

     Unk. (rgroesb@triple-it.nl)
   */

  function pop3_open($server, $port)  
  {
    global $POP3_GLOBAL_STATUS;

    $pop3 = fsockopen($server, $port);
    if ($pop3

    $line = fgets($pop3, 1024);
        $POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] = substr($line, 0, 1);
        $POP3_GLOBAL_STATUS[$pop3]["LASTRESULTTXT"] = substr($line, 0, 1024);

    if ($POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] "+") return 0;

    return $pop3;
  }

  function pop3_user($pop3, $user)
  {
    global $POP3_GLOBAL_STATUS;

    fputs($pop3, "USER $user\r\n");
    $line = fgets($pop3, 1024);
        $POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] = substr($line, 0, 1);
        $POP3_GLOBAL_STATUS[$pop3]["LASTRESULTTXT"] = substr($line, 0, 1024);
    
    if ($POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] "+") return 0;

    return 1;
  }

  function pop3_pass($pop3, $pass)
  {
    global $POP3_GLOBAL_STATUS;

    fputs($pop3, "PASS $pass\r\n");
    $line = fgets($pop3, 1024);
        $POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] = substr($line, 0, 1);
        $POP3_GLOBAL_STATUS[$pop3]["LASTRESULTTXT"] = substr($line, 0, 1024);
    
    if ($POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] "+") return 0;

    return 1;
  }
  
  function pop3_stat($pop3)
  {
    global $POP3_GLOBAL_STATUS;

    fputs($pop3, "STAT\r\n");
    $line = fgets($pop3, 1024);
        $POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] = substr($line, 0, 1);
        $POP3_GLOBAL_STATUS[$pop3]["LASTRESULTTXT"] = substr($line, 0, 1024);

        if ($POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] "+") return 0;

    if (!eregi("+OK (.*) (.*)", $line, $regs)) 
        return 0;

    return $regs[1];
  }

  function pop3_list($pop3)
  {    
        global $POP3_GLOBAL_STATUS;
  
        fputs($pop3, "LIST\r\n");
        $line = fgets($pop3, 1024);
        $POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] = substr($line, 0, 1);
        $POP3_GLOBAL_STATUS[$pop3]["LASTRESULTTXT"] = substr($line, 0, 1024);

        if ($POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] "+") return 0;

    $i = 0;
    while  (substr($line  =  fgets($pop3, 1024),  0,  1)    ".")
    {
        $articles[$i] = $line;
        $i++;
    }
    $articles["count"] = $i;

    return $articles;
  }

  function pop3_retr($pop3, $nr)
  {
        global $POP3_GLOBAL_STATUS;
  
        fputs($pop3, "RETR $nr\r\n");
        $line = fgets($pop3, 1024);
        $POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] = substr($line, 0, 1);
        $POP3_GLOBAL_STATUS[$pop3]["LASTRESULTTXT"] = substr($line, 0, 1024);

        if ($POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] "+") return 0;

        while  (substr($line  =  fgets($pop3, 1024),  0,  1)    ".")
        {
                $data[$i] = $line;
                $i++;
        }
        $data["count"] = $i;

        return $data;
  }

  function pop3_dele($pop3, $nr)
  {
        global $POP3_GLOBAL_STATUS;

        fputs($pop3, "DELE $nr\r\n");
        $line = fgets($pop3, 1024);
        $POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] = substr($line, 0, 1);
        $POP3_GLOBAL_STATUS[$pop3]["LASTRESULTTXT"] = substr($line, 0, 1024);

        if ($POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] "+") return 0;


        return 1;
  }

  function pop3_quit($pop3)
  {
        global $POP3_GLOBAL_STATUS;

        fputs($pop3, "QUIT\r\n");
        $line = fgets($pop3, 1024);
        $POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] = substr($line, 0, 1);
        $POP3_GLOBAL_STATUS[$pop3]["LASTRESULTTXT"] = substr($line, 0, 1024);

        if ($POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] "+") return 0;

        return 1;
  }

  function smtp_open($server, $port)
  {
        global $SMTP_GLOBAL_STATUS;

        $smtp = fsockopen($server, $port);
        if ($smtp

        $line = fgets($smtp, 1024);
        $SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] = substr($line, 0, 1);
        $SMTP_GLOBAL_STATUS[$smtp]["LASTRESULTTXT"] = substr($line, 0, 1024);

        if ($SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] "2") return 0;

        return $smtp;
  }

 
  function smtp_helo($smtp)
  {
        global $SMTP_GLOBAL_STATUS;

    /* 'localhost' always works [Unk] */
        fputs($smtp, "helo localhost\r\n");
        $line = fgets($smtp, 1024);
        $SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] = substr($line, 0, 1);
        $SMTP_GLOBAL_STATUS[$smtp]["LASTRESULTTXT"] = substr($line, 0, 1024);

        if ($SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] "2") return 0;

        return 1;
  }
 
  function smtp_ehlo($smtp)
  {
        global $SMTP_GLOBAL_STATUS;

    /* Well, let's use "helo" for now.. Until we need the
          extra func's   [Unk]
     */
        fputs($smtp, "helo localhost\r\n");
        $line = fgets($smtp, 1024);
        $SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] = substr($line, 0, 1);
        $SMTP_GLOBAL_STATUS[$smtp]["LASTRESULTTXT"] = substr($line, 0, 1024);

        if ($SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] "2") return 0;

        return 1;
  }


  function smtp_mail_from($smtp, $from)
  {
        global $SMTP_GLOBAL_STATUS;

        fputs($smtp, "MAIL FROM: \r\n");
        $line = fgets($smtp, 1024);
        $SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] = substr($line, 0, 1);
        $SMTP_GLOBAL_STATUS[$smtp]["LASTRESULTTXT"] = substr($line, 0, 1024);

        if ($SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] "2") return 0;

        return 1;
  }
 
  function smtp_rcpt_to($smtp, $to)
  {
        global $SMTP_GLOBAL_STATUS;

        fputs($smtp, "RCPT TO: \r\n");
        $line = fgets($smtp, 1024);
        $SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] = substr($line, 0, 1);
        $SMTP_GLOBAL_STATUS[$smtp]["LASTRESULTTXT"] = substr($line, 0, 1024);

        if ($SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] "2") return 0;

        return 1;
  }

  function smtp_data($smtp, $subject, $data)
  {
        global $SMTP_GLOBAL_STATUS;

        fputs($smtp, "DATA\r\n");
        $line = fgets($smtp, 1024);
        $SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] = substr($line, 0, 1);
        $SMTP_GLOBAL_STATUS[$smtp]["LASTRESULTTXT"] = substr($line, 0, 1024);

        if ($SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] "3") return 0;

    fputs($smtp, "Mime-Version: 1.0\r\n");
    fputs($smtp, "Subject: $subject\r\n");    
    fputs($smtp, "$data\r\n\r\n");
    fputs($smtp, ".\r\n");
        $line = fgets($smtp, 1024);
    if (substr($line, 0, 1) "2")
        return 0; 

        return 1;
  }
 
  function smtp_quit($smtp)
  {
        global $SMTP_GLOBAL_STATUS;

        fputs($smtp, "QUIT\r\n");
        $line = fgets($smtp, 1024);
        $SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] = substr($line, 0, 1);
        $SMTP_GLOBAL_STATUS[$smtp]["LASTRESULTTXT"] = substr($line, 0, 1024);

        if ($SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] "2") return 0;

    return 1;
  } 
  

  
/*
 $pop3 = pop3_open("localhost", "110");
 if (!$pop3) {
    printf("[ERROR] Failed to connect to localhost
\n");
    return 0;
 }
 
 if (!pop3_user($pop3, "unk")) {
    printf("[ERROR] Username failed!
\n");
    return 0;
 }
 
 if (!pop3_pass($pop3, "secret")) {
    printf("[ERROR] PASS failed!
\n");
    return 0;
 }

 $articles = pop3_list($pop3);
 if (!$articles) {
    printf("[ERROR] LIST failed!
\n");
    return 0;
 }
 
 for ($i = 1; $i  {
    printf("i=$i
\n");
    $data = pop3_retr($pop3,$i);
    if (!$data) {
        printf("data goes wrong on '$i'
\n");
        return 0;
    }
    
    for ($j = 0; $j     {
        printf("$data[$j]
\n");
    }
 }
 */
 
 
?>

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template