5

未読のメーリング リストを gmail からフィードとして取得できるスクリプトを作成しました。コードは次のとおりです。

<?php
//function to get unread emails taking username and password as parameters
function check_email($username, $password)
{ 
    //url to connect to
    $url = "https://mail.google.com/mail/feed/atom"; 

    // sendRequest 
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_USERPWD, $username . ":" . $password);
    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    curl_setopt($curl, CURLOPT_ENCODING, "");
    $curlData = curl_exec($curl);
    curl_close($curl);
    //returning retrieved feed
    return $curlData;

}

//making page to behave like xml document to show feeds
header('Content-Type:text/xml; charset=UTF-8');
//calling function
$feed = check_email("username", "password");
echo $feed;
?>

出力はこのようになります

<?xml version="1.0" encoding="UTF-8"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#">
<title>Gmail - Inbox for suneth2@gmail.com</title>
<tagline>New messages in your Gmail Inbox</tagline>
<fullcount>1282</fullcount>
<link rel="alternate" href="http://mail.google.com/mail" type="text/html" />
<modified>2012-08-01T12:33:48Z</modified>
<entry>
<title>eBCS Pro 1 August 2012</title>
<summary>bcs logo eBCS Pro 1 August 2012 Video interview Olympic IT The Met Police&#39;s director of IT, Steve</summary>
<link rel="alternate" href="http://mail.google.com/mail?account_id=test@gmail.com&amp;message_id=138e21a3404cc7b2&amp;view=conv&amp;extsrc=atom" type="text/html" />
<modified>2012-08-01T12:12:44Z</modified>
<issued>2012-08-01T12:12:44Z</issued>
<id>tag:gmail.google.com,2004:1409100718455703474</id>
<author>
<name>eBCS Newsletter</name>
<email>e-bulletin@lists.bcs.org.uk</email>
</author>
</entry>
<entry>

だから読みたい

<fullcount>1282</fullcount>

鬼ごっこ

ユーザー名とパスワードをこの関数に渡すと、メーリングリストを表示できます。メッセージ数だけを取得する必要があります。アイテムをキャッチまたはカウントする方法はありますか

4

2 に答える 2

1

これが答えです、私はphpを使用してxmlタグを読みます

$xmlobjc = new SimpleXMLElement($feed);

echo $xmlobjc->fullcount[0];

ヘッダーを次のように置き換えます

header('Content-Type:text/html; charset=UTF-8');
于 2012-08-01T12:49:58.790 に答える
0

これも機能します:

curl -u $(cat username):$(cat password) --silent 'https://mail.google.com/mail/feed/atom' | sed -n 's:.*<fullcount>\(.*\)</fullcount>.*:\1:p'
于 2015-07-06T21:54:40.773 に答える