基本認証を使用します。基本的に、最初のリクエストを行い、サーバーが401で応答してから、base64(この場合はHTTPS経由)でパスワードを送り返します。
ただし、次の点に注意してください。
- フィードでは、アカウントに関する些細な情報(新着メールなど)のみを取得できます。メッセージを送信することはできません。
- POPを使用してメッセージを送信することもできません。
- 通常はSMTPが使用されますが、それほど難しくはありません。
編集:これは、Atomフィードを認証してXmlDocumentにロードするための例です。ただし、これは読み取りアクセスのみを提供することに注意してください。C#とSMTPに関する情報については、検索するか、別の質問をしてください。MonoはGoogleの証明書が気に入らなかったので、ICertificatePolicyジャンクが必要でした。これは迅速な回避策であり、本番環境には適していません。
さて、あなたは実際にメールを読んでいることを明らかにしたので(そして別のコンポーネントがそれを送信しています)、POPを使用することをお勧めします。:
using System;
using System.Net;
using System.IO;
using System.Security.Cryptography.X509Certificates;
using System.Xml;
public class GmailFeed
{
private class IgnoreBadCerts : ICertificatePolicy
{
public bool CheckValidationResult (ServicePoint sp,
X509Certificate certificate,
WebRequest request,
int error)
{
return true;
}
}
public static void Main(string[] argv)
{
if(argv.Length != 2)
{
Console.Error.WriteLine("Usage: GmailFeed username password");
Environment.ExitCode = 1;
return;
}
ServicePointManager.CertificatePolicy = new IgnoreBadCerts();
NetworkCredential cred = new NetworkCredential();
cred.UserName = argv[0];
cred.Password = argv[1];
WebRequest req = WebRequest.Create("https://gmail.google.com/gmail/feed/atom");
req.Credentials = cred;
Stream resp = req.GetResponse().GetResponseStream();
XmlReader reader = XmlReader.Create(resp);
XmlDocument doc = new XmlDocument();
doc.Load(reader);
}
}