public static void Run() { //ExStart:SetMAPIProperties // The path to the File directory. string dataDir = RunExamples.GetDataDir_Outlook(); // Create a sample Message MapiMessage mapiMsg = new MapiMessage("*****@*****.**", "*****@*****.**", "This is subject", "This is body"); // Set multiple properties mapiMsg.SetProperty(new MapiProperty(MapiPropertyTag.PR_SENDER_ADDRTYPE_W, Encoding.Unicode.GetBytes("EX"))); MapiRecipient recipientTo = mapiMsg.Recipients[0]; MapiProperty propAddressType = new MapiProperty(MapiPropertyTag.PR_RECEIVED_BY_ADDRTYPE_W, Encoding.UTF8.GetBytes("MYFAX")); recipientTo.SetProperty(propAddressType); string faxAddress = "My Fax User@/FN=fax#/VN=voice#/CO=My Company/CI=Local"; MapiProperty propEmailAddress = new MapiProperty(MapiPropertyTag.PR_RECEIVED_BY_EMAIL_ADDRESS_W, Encoding.UTF8.GetBytes(faxAddress)); recipientTo.SetProperty(propEmailAddress); mapiMsg.SetMessageFlags(MapiMessageFlags.MSGFLAG_UNSENT | MapiMessageFlags.MSGFLAG_FROMME); mapiMsg.SetProperty(new MapiProperty(MapiPropertyTag.PR_RTF_IN_SYNC, BitConverter.GetBytes((long)1))); // Set DateTime property MapiProperty modificationTime = new MapiProperty(MapiPropertyTag.PR_LAST_MODIFICATION_TIME, ConvertDateTime(new DateTime(2013, 9, 11))); mapiMsg.SetProperty(modificationTime); mapiMsg.Save(dataDir + "MapiProp_out.msg"); //ExEnd:SetMAPIProperties }
public static void Run() { // Set Exchange Server web service URL, Username, password, domain information string mailboxURI = "https://ex2010/ews/exchange.asmx"; string username = "******"; string password = "******"; string domain = "ex2010.local"; //ExStart: WorkingWithExtendedAttributesOfMessages // Connect to the Exchange Server NetworkCredential credential = new NetworkCredential(username, password, domain); IEWSClient client = EWSClient.GetEWSClient(mailboxURI, credential); { try { //Create a new Property PidNamePropertyDescriptor pd = new PidNamePropertyDescriptor( "MyTestProp", PropertyDataType.String, KnownPropertySets.PublicStrings); string value = "MyTestPropValue"; //Create a message MapiMessage message = new MapiMessage( "*****@*****.**", "*****@*****.**", "EMAILNET-38844 - " + Guid.NewGuid().ToString(), "EMAILNET-38844 EWS: Support for create, retrieve and update Extended Attributes for Emails"); //Set property on the message message.SetProperty(pd, value); //append the message to server string uri = client.AppendMessage(message); //Fetch the message from server MapiMessage mapiMessage = client.FetchMapiMessage(uri, new PropertyDescriptor[] { pd }); //Retreive the value from Message string fetchedValue = mapiMessage.NamedProperties[pd].GetString(); } finally { } } //ExEnd: WorkingWithExtendedAttributesOfMessages }
public static void Run() { string dataDir = RunExamples.GetDataDir_Outlook(); MapiMessage msg = MapiMessage.FromFile(dataDir + "message.msg"); // ExStart:SetAdditionalMAPIProperties // PT_MV_FLOAT, PT_MV_R4, mv.float IList <object> values = new List <object>(); values.Add((float)1); values.Add((float)2); msg.SetProperty(new MapiProperty(0x23901004, values)); // PT_MV_DOUBLE, PT_MV_R8 values = new List <object>(); values.Add((double)1); values.Add((double)2); msg.SetProperty(new MapiProperty(0x23901005, values)); // PT_MV_CURRENCY, mv.fixed.14.4 values = new List <object>(); values.Add((decimal)123.34); values.Add((decimal)289.45); msg.SetProperty(new MapiProperty(0x23901006, values)); // PT_MV_APPTIME values = new List <object>(); values.Add(30456.34); values.Add(40655.45); msg.SetProperty(new MapiProperty(0x23901007, values)); // PT_MV_I8, PT_MV_LONGLONG values = new List <object>(); values.Add((long)30456); values.Add((long)40655); msg.SetProperty(new MapiProperty(0x23901014, values)); // PT_MV_CLSID, mv.uuid values = new List <object>(); values.Add(Guid.NewGuid()); values.Add(Guid.NewGuid()); msg.SetProperty(new MapiProperty(0x23901048, values)); // PT_MV_SHORT, PT_MV_I2, mv.i2 values = new List <object>(); values.Add((short)1); values.Add((short)2); msg.SetProperty(new MapiProperty(0x23901002, values)); // PT_MV_SYSTIME values = new List <object>(); values.Add(DateTime.Now); values.Add(DateTime.Now); msg.SetProperty(new MapiProperty(0x23901040, values)); // PT_MV_BOOLEAN values = new List <object>(); values.Add(true); values.Add(false); msg.SetProperty(new MapiProperty(0x2390100b, values)); // PT_MV_BINARY values = new List <object>(); values.Add(Guid.NewGuid().ToByteArray()); values.Add(new byte[] { 1, 2, 4, 5, 6, 7, 5, 4, 3, 5, 6, 7, 8, 6, 4, 3, 4, 5, 6, 7, 8, 6, 5, 4, 3, 7, 8, 9, 0, 2, 3, 4, }); msg.SetProperty(new MapiProperty(0x23901102, values)); // PT_NULL msg.SetProperty(new MapiProperty(0x67400001, new byte[1])); MapiMessage message = new MapiMessage("*****@*****.**", "*****@*****.**", "subj", "Body of test msg"); // PT_MV_LONG values = new List <object>(); values.Add((int)4); MapiProperty property = new MapiProperty(message.NamedPropertyMapping.GetNextAvailablePropertyId(MapiPropertyType.PT_MV_LONG), values); message.NamedPropertyMapping.AddNamedPropertyMapping(property, 0x00008028, new Guid("00062004-0000-0000-C000-000000000046")); message.SetProperty(property); // OR you can set the custom property (with the custom name) message = new MapiMessage("*****@*****.**", "*****@*****.**", "subj", "Body of test msg"); values = new List <object>(); values.Add((int)4); property = new MapiProperty(message.NamedPropertyMapping.GetNextAvailablePropertyId(MapiPropertyType.PT_MV_LONG), values); message.AddCustomProperty(property, "customProperty"); //PT_FLOAT //Please note that you need explicit cast to float value for this to work float floatValue = (float)123.456; MapiMessage newMsg = new MapiMessage(); long floatTag = newMsg.NamedPropertyMapping.GetNextAvailablePropertyId(MapiPropertyType.PT_FLOAT); Guid guid = Guid.NewGuid(); MapiProperty newMapiProperty = new MapiProperty(floatTag, BitConverter.GetBytes(floatValue)); newMsg.NamedPropertyMapping.AddNamedPropertyMapping(newMapiProperty, 12, guid); newMsg.SetProperty(newMapiProperty); // ExEnd:SetAdditionalMAPIProperties }