accessing my gmail inbox via php code

后端 未结 5 1608
野趣味
野趣味 2020-12-28 19:14

how i can access my gmail account through my php code? I need to get the subject and the from address to from my gmail account.And then i need to mark the accessed as read o

相关标签:
5条回答
  • 2020-12-28 19:38

    Zend Framework has the Zend_Mail API for reading mail as well. It makes it easy to switch protocols if need be (POP3, IMAP, Mbox, and Maildir). Only the IMAP and Maildir storage classes support setting flags at this time.

    http://framework.zend.com/manual/en/zend.mail.read.html

    Read messages example from the Zend Framework docs:

    $mail = new Zend_Mail_Storage_Pop3(array('host'     => 'localhost',
                                             'user'     => 'test',
                                             'password' => 'test'));
    
    echo $mail->countMessages() . " messages found\n";
    foreach ($mail as $message) {
        echo "Mail from '{$message->from}': {$message->subject}\n";
    }
    
    0 讨论(0)
  • 2020-12-28 19:41

    This works for me.

    <?php
    
    $yourEmail = "you@gmail.com";
    $yourEmailPassword = "your password";
    
    $mailbox = imap_open("{imap.gmail.com:993/ssl}INBOX", $yourEmail, $yourEmailPassword);
    $mail = imap_search($mailbox, "ALL");
    $mail_headers = imap_headerinfo($mailbox, $mail[0]);
    $subject = $mail_headers->subject;
    $from = $mail_headers->fromaddress;
    imap_setflag_full($mailbox, $mail[0], "\\Seen \\Flagged");
    imap_close($mailbox);
    ?>
    
    0 讨论(0)
  • 2020-12-28 19:44

    You can use IMAP from PHP.

    <?php
    $mbox = imap_open("{imap.example.org:143}", "username", "password")
         or die("can't connect: " . imap_last_error());
    
    $status = imap_setflag_full($mbox, "2,5", "\\Seen \\Flagged");
    
    echo gettype($status) . "\n";
    echo $status . "\n";
    
    imap_close($mbox);
    ?>
    
    0 讨论(0)
  • 2020-12-28 19:55

    I would just use the PHP imap functions and do something like this:

    <?php
        $mailbox = imap_open("{imap.googlemail.com:993/ssl}INBOX", "USERNAME@googlemail.com", "PASSWORD");
        $mail = imap_search($mailbox, "ALL");
        $mail_headers = imap_headerinfo($mailbox, $mail[0]);
        $subject = $mail_headers->subject;
        $from = $mail_headers->fromaddress;
        imap_setflag_full($mailbox, $mail[0], "\\Seen \\Flagged");
        imap_close($mailbox);
    ?>
    

    This connects to imap.googlemail.com (googlemail's imap server), sets $subject to the subject of the first message and $from to the from address of the first message. Then, it marks this message as read. (It's untested, but it should work :S)

    0 讨论(0)
  • 2020-12-28 20:02

    Another nice IMAP example is available at http://davidwalsh.name/gmail-php-imap

    0 讨论(0)
提交回复
热议问题