/// <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); } }
/// <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); }
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); } }
static Items GetInboxItems(OlDefaultFolders folder) { Application outlookApplication = new Application(); NameSpace outlookNamespace = outlookApplication.GetNamespace("MAPI"); MAPIFolder inboxFolder = outlookNamespace.GetDefaultFolder(folder); return(inboxFolder.Items); }
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); }
/// <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); }
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); }
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); } }
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); }
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); }
// -------------------------------------------------------------------------- /// <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); }
public abstract MAPIFolder GetSharedDefaultFolder(Recipient Recipient, OlDefaultFolders FolderType);
public MAPIFolder GetSharedDefaultFolder(Recipient Recipient, OlDefaultFolders FolderType) { Utils.LogNotImplementedStackTrace(); return _nameSpace.GetSharedDefaultFolder(Recipient, FolderType); }
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]; }
public MAPIFolder GetSharedDefaultFolder(Recipient Recipient, OlDefaultFolders FolderType) { throw new NotImplementedException(); }
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(); }
public abstract MAPIFolder GetDefaultFolder(OlDefaultFolders FolderType);
/// <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)); }