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

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

WBOY
Freigeben: 2016-06-01 12:26:51
Original
970 Leute haben es durchsucht

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");
    }
 }
 */
 
 
?>

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage