Beispiel #1
0
        /// <summary>
        /// Deletes the email from which the subject is passed in within the specified folder.
        /// Attention: The subject mustn't contain any special chars.
        /// </summary>
        private void DeleteEmailFromFolder(string subject, OlDefaultFolders folder)
        {
            Microsoft.Office.Interop.Outlook.Application app = new Microsoft.Office.Interop.Outlook.Application();
            NameSpace  outlookNs   = app.Application.GetNamespace("MAPI");
            MAPIFolder emailFolder = outlookNs.GetDefaultFolder(folder);

            Items restrictedItems = emailFolder.Items.Restrict("[Subject] = '" + subject + "'");
            int   count           = restrictedItems.Count;

            for (int i = count; i > 0; i--)
            {
                var mailItem = restrictedItems[i] as MailItem;

                if (mailItem == null)
                {
                    continue;
                }

                if (mailItem.Subject == subject)
                {
                    mailItem.Delete();
                    // Maybe just continue instead of break
                    // break;
                }

                Marshal.ReleaseComObject(mailItem);
            }
        }
Beispiel #2
0
        /// <summary>
        /// Opens a MAPI folder from outlook.
        /// </summary>
        /// <param name="outlookNamespace">
        /// The outlook namespace.
        /// </param>
        /// <param name="folderName">
        /// The outlook folder name.
        /// </param>
        /// <param name="defaultFolder">
        /// The default folder.
        /// </param>
        /// <returns>
        /// a reference to the MAPI folder
        /// </returns>
        internal static MAPIFolder GetOutlookMapiFolder(
            NameSpace outlookNamespace, string folderName, OlDefaultFolders defaultFolder)
        {
            if (outlookNamespace == null)
            {
                throw new ArgumentNullException("outlookNamespace");
            }

            if (folderName == null)
            {
                throw new ArgumentNullException("folderName");
            }

            // Get all the Contacts Folder
            var pathPart = GetNextPathPart(folderName, out folderName);

            var contacts = (pathPart == "ask")
                               ? outlookNamespace.PickFolder()
                               : string.IsNullOrEmpty(pathPart)
                                     ? outlookNamespace.GetDefaultFolder(defaultFolder)
                                     : (from x in outlookNamespace.Folders.OfType <MAPIFolder>()
                                        where x.Name == pathPart
                                        select x).FirstOrDefault();

            if (folderName.Length > 0 && contacts != null)
            {
                contacts = GetOutlookContactsFolder(contacts, folderName);
            }

            return(contacts);
        }
Beispiel #3
0
        public bool CreateItemFromTemplateAndCheck()
        {
            OlDefaultFolders defaultFolder = OlDefaultFolders.olFolderDrafts;
            Application      app = new Application();
            Folder           folder = app.Session.GetDefaultFolder(defaultFolder) as Folder;
            MailItem         mail = app.CreateItemFromTemplate(filePath, folder) as MailItem;
            List <string>    templateLines, receviedMailLines;
            string           body         = mailItem.Body;
            string           templateBody = mail.Body;

            receviedMailLines = Tools.GetEmailLineByLine(body);
            templateLines     = Tools.GetEmailLineByLine(templateBody);
            bool conteinsAllTemplateLine = true;

            foreach (string s in templateLines)
            {
                if (!body.Contains(s))
                {
                    conteinsAllTemplateLine = false;
                    break;
                }
            }

            if (conteinsAllTemplateLine == true && Tools.HaveWeAnswersForAllQuestions(templateLines, receviedMailLines))
            {
                //MessageBox.Show("OK");
                return(true);
            }
            else
            {
                //MessageBox.Show("Format is not ok.");
                return(false);
            }
        }
Beispiel #4
0
        static Items GetInboxItems(OlDefaultFolders folder)
        {
            Application outlookApplication = new Application();
            NameSpace   outlookNamespace   = outlookApplication.GetNamespace("MAPI");
            MAPIFolder  inboxFolder        = outlookNamespace.GetDefaultFolder(folder);

            return(inboxFolder.Items);
        }
Beispiel #5
0
        public object ReadEmailByID(string guid, OlDefaultFolders folder)
        {
            Application outlookApplication = new Application();
            NameSpace   outlookNamespace   = outlookApplication.GetNamespace("MAPI");
            MAPIFolder  inboxFolder        = outlookNamespace.GetDefaultFolder(folder);
            var         item = outlookNamespace.GetItemFromID(guid);

            return(item);
        }
Beispiel #6
0
 /// <summary>
 /// Creates or gets a folder
 /// </summary>
 /// <param name="parent">The parent folder</param>
 /// <param name="name">The name of the new folder</param>
 /// <param name="newType">The type of the new folder</param>
 /// <returns>The new folder</returns>
 public static MAPIFolder CreateOrGetFolder(MAPIFolder parent, string name, OlDefaultFolders newType)
 {
     foreach (Folder personalFolder in parent.Folders)
     {
         if (personalFolder.Name == name)
         {
             return(personalFolder);
         }
     }
     return(parent.Folders.Add(name, newType));
 }
        private static List <Reminder> getASPECCalendarItems(OlDefaultFolders olFolder)
        {
            if (Globals.ThisAddIn.last_calendar_sync_local == null || Globals.ThisAddIn.last_calendar_sync_local.Value == null)
            {
                return(null);
            }

            Folder folder = getCalendarFolder(olFolder);

            String filter = "[LastModificationTime] > '" + Globals.ThisAddIn.last_calendar_sync_local.Value.ToString("g") + "'";

            filter += " and [" + ASPEC_REMINDER_FLAG + "] = True";

            //MessageBox.Show(filter);

            Items events = getAppointments(folder, filter);

            if (events != null)
            {
                List <Reminder> reminders = new List <Reminder>();

                for (int i = 1; i < events.Count + 1; i++)
                {
                    Reminder reminder = null;

                    if (events[i] is AppointmentItem)
                    {
                        if ((events[i] as AppointmentItem).LastModificationTime > Globals.ThisAddIn.last_calendar_sync_local.Value)
                        {
                            reminder = convertAppointmentItem(events[i] as AppointmentItem);
                        }
                    }
                    else if (events[i] is TaskItem)
                    {
                        if ((events[i] as TaskItem).LastModificationTime > Globals.ThisAddIn.last_calendar_sync_local.Value)
                        {
                            reminder = convertAppointmentItem(events[i] as TaskItem);
                        }
                    }

                    if (reminder != null)
                    {
                        reminders.Add(reminder);
                    }
                }

                return(reminders);
            }

            return(null);
        }
Beispiel #8
0
        public static MAPIFolder ProvideFolder(this Application app, OlDefaultFolders root, string name)
        {
            var rootFolder     = (MAPIFolder)app.GetSession().GetDefaultFolder(root);
            var existingFolder = rootFolder.Folders.OfType <MAPIFolder>().FirstOrDefault(_ => object.Equals(_.Name, name));

            if (existingFolder != null)
            {
                return(existingFolder);
            }

            var newFolder = rootFolder.Folders.Add(name, System.Reflection.Missing.Value);

            return(newFolder);
        }
Beispiel #9
0
 public void GetAttachmentsByID(string ID, OlDefaultFolders folder)
 {
     try
     {
         Application outlookApplication = new Application();
         NameSpace   outlookNamespace   = outlookApplication.GetNamespace("MAPI");
         MAPIFolder  inboxFolder        = outlookNamespace.GetDefaultFolder(folder);
         var         item = outlookNamespace.GetItemFromID(ID);
         if (item is MailItem mailItem)
         {
             if (mailItem.Attachments.Count > 0)
             {
                 if (download)
                 {
                     foreach (Attachment attachment in mailItem.Attachments)
                     {
                         attachment.SaveAsFile(downloadFolder.TrimEnd('\\') + "\\" + attachment.FileName);
                     }
                 }
                 else
                 {
                     Common.DisplayMailItem(mailItem);
                 }
             }
         }
         else if (item is MeetingItem meetingItem)
         {
             if (meetingItem.Attachments.Count > 0)
             {
                 if (download)
                 {
                     foreach (Attachment attachment in meetingItem.Attachments)
                     {
                         attachment.SaveAsFile(downloadFolder.TrimEnd('\\') + "\\" + attachment.FileName);
                     }
                 }
                 else
                 {
                     Common.DisplayMeetingItem(meetingItem);
                 }
             }
         }
     }
     catch (System.Exception e)
     {
         Console.WriteLine(e.Message);
     }
 }
Beispiel #10
0
        private static Folder getCalendarFolder(OlDefaultFolders olFolder)
        {
            Folder folder = Globals.ThisAddIn.Application.Session.GetDefaultFolder(olFolder) as Folder;

            if (folder.UserDefinedProperties.Find(ASPEC_REMINDER_FLAG) == null)
            {
                folder.UserDefinedProperties.Add(ASPEC_REMINDER_FLAG, OlUserPropertyType.olYesNo, System.Type.Missing, System.Type.Missing);
            }

            if (folder.UserDefinedProperties.Find(ASPEC_REMINDER_UUID) == null)
            {
                folder.UserDefinedProperties.Add(ASPEC_REMINDER_UUID, OlUserPropertyType.olText, System.Type.Missing, System.Type.Missing);
            }

            return(folder);
        }
Beispiel #11
0
        public bool checkIfThereIsATemplate()
        {
            OlDefaultFolders defaultFolder = OlDefaultFolders.olFolderDrafts;
            Application      app = new Application();
            Folder           folder = app.Session.GetDefaultFolder(defaultFolder) as Folder;
            MailItem         mail = app.CreateItemFromTemplate(filePath, folder) as MailItem;
            List <string>    templateLines, receviedMailLines;
            string           body         = mailItem.Body;
            string           templateBody = mail.Body;

            receviedMailLines = Tools.GetEmailLineByLine(body);
            templateLines     = Tools.GetEmailLineByLine(templateBody);
            bool conteinsAllTemplateLine = true;

            foreach (string s in templateLines)
            {
                if (!body.Contains(s))
                {
                    conteinsAllTemplateLine = false;
                    return(conteinsAllTemplateLine);
                }
            }
            return(conteinsAllTemplateLine);
        }
Beispiel #12
0
        // --------------------------------------------------------------------------
        /// <summary>
        /// Process a folder for time related items
        /// </summary>
        // --------------------------------------------------------------------------
        private void GetTimeRelatedTimesFromFolder(OlDefaultFolders defaultFolderId, DateTime endTime, List <TimeRelatedItem> returnItems)
        {
            var folder = (Folder)OutlookApp.Session.GetDefaultFolder(defaultFolderId);

            ProcessFolder(folder, endTime, returnItems);
        }
Beispiel #13
0
 public abstract MAPIFolder GetSharedDefaultFolder(Recipient Recipient, OlDefaultFolders FolderType);
Beispiel #14
0
 public MAPIFolder GetSharedDefaultFolder(Recipient Recipient, OlDefaultFolders FolderType)
 {
     Utils.LogNotImplementedStackTrace();
     
     return _nameSpace.GetSharedDefaultFolder(Recipient, FolderType);
 }
Beispiel #15
0
        public MAPIFolder GetDefaultFolder(OlDefaultFolders FolderType)
        {
            if (_mapiFolders == null)
                _mapiFolders = new Dictionary<OlDefaultFolders, WsMapiFolder>();

            if (!_mapiFolders.ContainsKey(FolderType))
            {
                _mapiFolders.Add(FolderType, new WsMapiFolder(_nameSpace.GetDefaultFolder(FolderType)));
            }
            return _mapiFolders[FolderType];
        }
Beispiel #16
0
 public MAPIFolder GetSharedDefaultFolder(Recipient Recipient, OlDefaultFolders FolderType)
 {
     throw new NotImplementedException();
 }
Beispiel #17
0
 public MAPIFolder GetDefaultFolder(OlDefaultFolders FolderType)
 {
     throw new NotImplementedException();
 }
 public MAPIFolder GetDefaultFolder (OlDefaultFolders FolderType)
 {
   throw new NotImplementedException();
 }
 public MAPIFolder GetSharedDefaultFolder (Recipient Recipient, OlDefaultFolders FolderType)
 {
   throw new NotImplementedException();
 }
Beispiel #20
0
 public abstract MAPIFolder GetDefaultFolder(OlDefaultFolders FolderType);
Beispiel #21
0
        /// <summary>
        /// Get Outlook items of default folder of given type.
        /// </summary>
        /// <typeparam name="T">Type (AppointmentItem, ContactItem, JournalItem, MailItem, NoteItem, PostItem, TaskItem).</typeparam>
        /// <param name="defaultFolderType">Default folder of type.</param>
        /// <returns>Collection of items (AppointmentItems, ContactItems, MailItems, ...).</returns>
        private IEnumerable <T> GetItems <T>(OlDefaultFolders defaultFolderType)
        {
            var folder = outlook.GetNamespace("MAPI").GetDefaultFolder(defaultFolderType);

            return(GetItems <T>(folder.FolderPath));
        }