通过php代码访问我的Gmail收件箱

时间:2009-09-06 14:34:13

标签: php email gmail pop3

我如何通过我的PHP代码访问我的Gmail帐户?我需要从我的gmail帐户获取主题和发件人地址。然后我需要将访问标记为gmail上的读取 我应该使用gmail pop3 clint吗?是我可以用来访问gmail pop3的任何框架 服务器

5 个答案:

答案 0 :(得分:14)

我会使用PHP imap functions并执行以下操作:

<?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);
?>

这连接到imap.googlemail.com(googlemail的imap服务器),将$ subject设置为第一条消息的主题,将$ from设置为第一条消息的from地址。然后,它将此消息标记为已读。 (它未经测试,但应该工作:S)

答案 1 :(得分:4)

这适合我。

<?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);
?>

答案 2 :(得分:3)

您可以使用PHP中的IMAP

<?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);
?>

答案 3 :(得分:3)

http://davidwalsh.name/gmail-php-imap

提供了另一个不错的IMAP示例

答案 4 :(得分:1)

Zend Framework也有Zend_Mail API来读取邮件。如果需要,可以轻松切换协议(POP3,IMAP,Mbox和Maildir)。目前只有IMAP和Maildir存储类支持设置标志。

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

阅读Zend Framework文档中的消息示例:

$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";
}