This repository has been archived by the owner on Dec 4, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 58
/
MailItem.cs
96 lines (83 loc) · 3.85 KB
/
MailItem.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
// Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See full license at the bottom of this file.
using Microsoft.Office365.OutlookServices;
using O365_APIs_Start_ASPNET_MVC.Helpers;
using System;
using System.ComponentModel.DataAnnotations;
using System.Text.RegularExpressions;
namespace O365_APIs_Start_ASPNET_MVC.Models
{
//Represents a Mail message in an easily consumable form by our views
public class MailItem
{
public string ID;
[DataType(DataType.MultilineText)]
public string Body { get; set; }
public string Recipients { get; set; }
public string Subject { get; set; }
public string Sender { get; set; }
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM-dd-yyyy HH:mm tt}")]
public DateTimeOffset? Received { get; set; }
//The next two are used for implementing paging
//Determines if this item is the first item or the last item in the collection
public bool IsFirstItem { get; set; }
public bool IsLastItem { get; set; }
private MailOperations _mailOperations = new MailOperations();
public MailItem(IMessage serverMailItem)
{
IsLastItem = false;
IsFirstItem = false;
ID = serverMailItem.Id;
//If HTML, take text. Otherwise, use content as is
string bodyType = serverMailItem.Body.ContentType.ToString();
string bodyContent = serverMailItem.Body.Content;
if (bodyType == "HTML")
{
bodyContent = Regex.Replace(bodyContent, "<[^>]*>", "");
bodyContent = Regex.Replace(bodyContent, "\n", "");
bodyContent = Regex.Replace(bodyContent, "\r", "");
}
Body = bodyContent;
Subject = serverMailItem.Subject;
Recipients = _mailOperations.BuildRecipientList(serverMailItem.ToRecipients);
if (serverMailItem.Sender != null)
{
Sender = serverMailItem.Sender.EmailAddress.Address;
}
else
Sender = string.Empty; // Sometimes, mails exist as draft, and therefore haven't been sent.
if (serverMailItem.DateTimeReceived != null)
{
Received = serverMailItem.DateTimeReceived;
}
}
}
}
//*********************************************************
//
//O365 APIs Starter Project for ASPNET MVC, https://github.com/OfficeDev/Office-365-APIs-Starter-Project-for-ASPNETMVC
//
//Copyright (c) Microsoft Corporation
//All rights reserved.
//
//MIT License:
//
//Permission is hereby granted, free of charge, to any person obtaining
//a copy of this software and associated documentation files (the
//""Software""), to deal in the Software without restriction, including
//without limitation the rights to use, copy, modify, merge, publish,
//distribute, sublicense, and/or sell copies of the Software, and to
//permit persons to whom the Software is furnished to do so, subject to
//the following conditions:
//
//The above copyright notice and this permission notice shall be
//included in all copies or substantial portions of the Software.
//
//THE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,
//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
//NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
//LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
//OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
//WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//*********************************************************