私が設計しているプログラムの一部では、電子メールの本文を「読み取り」、可能であれば g メール アカウントから文字列に配置する必要があります。
私は何をしますか?C# から Web へのインタラクションに関しては、かなり迷っています。
ヘルプやリソースをいただければ幸いです。
明確にするために、一度にすべてではなく、受信時に電子メールを処理したいと考えています。
参考のため、
nugit で S22.Imap パッケージを使用する
using (var client = new ImapClient("imap.gmail.com", 993,
"username", "password", AuthMethod.Login, true))
{
var uids = client.Search(SearchCondition.Unseen());
if (uids.Length >= 1)
{
var message = client.GetMessage(uids[0], false, "inbox");
return new MessageInfo {EnclosedText = message.Body, Sender = message.From.ToString()};
}
return new MessageInfo();
}
見つけたGMailAtomFeed
// Create the object and get the feed
RC.Gmail.GmailAtomFeed gmailFeed = new RC.Gmail.GmailAtomFeed("username", "password");
gmailFeed.GetFeed();
// Access the feeds XmlDocument
XmlDocument myXml = gmailFeed.FeedXml
// Access the raw feed as a string
string feedString = gmailFeed.RawFeed
// Access the feed through the object
string feedTitle = gmailFeed.Title;
string feedTagline = gmailFeed.Message;
DateTime feedModified = gmailFeed.Modified;
//Get the entries
for(int i = 0; i < gmailFeed.FeedEntries.Count; i++) {
entryAuthorName = gmailFeed.FeedEntries[i].FromName;
entryAuthorEmail = gmailFeed.FeedEntries[i].FromEmail;
entryTitle = gmailFeed.FeedEntries[i].Subject;
entrySummary = gmailFeed.FeedEntries[i].Summary;
entryIssuedDate = gmailFeed.FeedEntries[i].Received;
entryId = gmailFeed.FeedEntries[i].Id;
}
また、あなたは見るべきです
http://code.msdn.microsoft.com/CSharpGmail
http://weblogs.asp.net/satalajmore/archive/2007/12/19/asp-net-read-email.aspx
受信したメールの処理に関しては、新しいメールをポーリングするプロセスを設定するだけです。