123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- using Microsoft.Exchange.WebServices.Data;
- namespace InABox.Mail
- {
- public class ExchangeMailSummary : ICoreMailSummary
- {
- public string ID => throw new NotImplementedException();
- public DateTime Date => throw new NotImplementedException();
- public string From
- {
- get => throw new NotImplementedException();
- set => throw new NotImplementedException();
- }
- public string Subject
- {
- get => throw new NotImplementedException();
- set => throw new NotImplementedException();
- }
- public IEnumerable<string> To
- {
- get => throw new NotImplementedException();
- set => throw new NotImplementedException();
- }
- }
- public class ExchangeMailMessage : ICoreMailMessage
- {
- private Tuple<string, byte[]>[] _attachments = { };
- private ExchangeMailMessage()
- {
- }
- public ExchangeMailMessage(EmailMessage message)
- {
- Message = message;
- }
- public EmailMessage Message { get; }
- public void Save()
- {
- Message.Save();
- }
- public string ID
- {
- get => Message.Id.UniqueId;
- set => throw new NotImplementedException();
- }
- public DateTime Date
- {
- get => Message.DateTimeReceived;
- set => throw new NotImplementedException();
- }
- public string From
- {
- get => Message.From.Address;
- set => Message.From.Address = value;
- }
- public IEnumerable<string> To
- {
- get { return Message.ToRecipients.Select(x => x.Address); }
- set
- {
- Message.ToRecipients.Clear();
- Message.ToRecipients.AddRange(value);
- }
- }
- public IEnumerable<string> CC
- {
- get { return Message.CcRecipients.Select(x => x.Address); }
- set
- {
- Message.CcRecipients.Clear();
- Message.CcRecipients.AddRange(value);
- }
- }
- public IEnumerable<string> BCC
- {
- get { return Message.BccRecipients.Select(x => x.Address); }
- set
- {
- Message.BccRecipients.Clear();
- Message.BccRecipients.AddRange(value);
- }
- }
- public string Subject
- {
- get => Message.Subject;
- set => Message.Subject = value;
- }
- public string Body
- {
- get => Message.Body;
- set => Message.Body = value;
- }
- public IEnumerable<Tuple<string, byte[]>> Attachments
- {
- get => _attachments;
- set
- {
- _attachments = value.ToArray();
- Message.Attachments.Clear();
- foreach (var attach in value)
- Message.Attachments.AddFileAttachment(attach.Item1, attach.Item2);
- }
- }
- public bool IsHTML
- {
- get => Message.Body.BodyType == BodyType.HTML;
- set => Message.Body.BodyType = value ? BodyType.HTML : BodyType.Text;
- }
- }
- }
|