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()
        {
            //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
        }
Beispiel #3
0
        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
        }