Rebex Graph
.NET client library for MS Graph API (Exchange Online)
Download 30-day free trial Buy from $199More .NET libraries
-
Rebex Mail Pack
IMAP, MS Graph, EWS, POP3, SMTP, MIME, S/MIME, MSG
-
Rebex Total Pack
All Rebex .NET libraries together
Back to feature list...
Easy-to-use API
On this page:
A typical Graph session goes through the following steps:
- Connect to Exchange Online (Microsoft 365) server.
- Authenticate using an OAuth access token.
- Find e-mail messages, download e-mails, send e-mails, or more.
- Disconnect.
Getting list of unread e-mails
The following code searches for unread e-mail messages and shows information about them:
// create Graph client instance using (var client = new Rebex.Net.GraphClient()) { // connect to Exchange Online (Microsoft 365) server client.Connect(); // authenticate with your OAuth access token client.Login(token); // get first page of a list of unread messages from the 'Inbox' folder var unread = GraphMessageSearchParameter.IsRead(false); GraphMessageCollection messages = client.Search(GraphFolderId.Inbox, unread); // print some info foreach (GraphMessageInfo info in messages) { Console.WriteLine("Subject: {0}", info.Subject); Console.WriteLine("From: {0}", info.From); Console.WriteLine("To: {0}", info.To); } // disconnect (not required, but polite) client.Disconnect(); }
Note: This code returns the first page of the results. See Paging results for more information about paging.
Downloading e-mails
To download and parse a whole e-mail message into the memory-based MailMessage
object,
use GetMailMessage()
method:
// create Graph client instance using (var client = new Rebex.Net.GraphClient()) { // connect to Exchange Online (Microsoft 365) server client.Connect(); // authenticate with your OAuth access token client.Login(token); // get first page of the message list of the 'Inbox' folder GraphMessageCollection messages = client.GetMessageList(GraphFolderId.Inbox); // print some info Console.WriteLine("{0} message(s) found.", messages.Count); // download those messages foreach (GraphMessageInfo info in messages) { MailMessage mail = client.GetMailMessage(info.Id); // do something with the mail // ... } // disconnect (not required, but polite) client.Disconnect(); }
Sending e-mails
Sending an e-mail message is as simple as creating a MailMessage
object and sending it using SendMessage
method:
// create Graph client instance using (var client = new Rebex.Net.GraphClient()) { // connect to Exchange Online (Microsoft 365) server client.Connect(); // authenticate with your OAuth access token client.Login(token); // prepare e-mail MailMessage mail = new MailMessage(); mail.To = "bob@example.org"; mail.Subject = "Sent using Rebex Graph"; mail.BodyText = "Hello World!"; // send e-mail client.SendMessage(mail); // disconnect (not required, but polite) client.Disconnect(); }
Tip: The 'From' field does not have to be filled by the client - it's supplied by the server based on the session's account.
Back to feature list...