package com.aspose.email.examples.outlook.msg; import java.util.UUID; import com.aspose.email.MapiMessage; import com.aspose.email.MapiNamedProperty; import com.aspose.email.MapiProperty; import com.aspose.email.MapiPropertyType; import com.aspose.email.system.BitConverter; import com.aspose.email.system.collections.ArrayList; import com.aspose.email.system.collections.IList; public class SetAdditionalMAPIProperties { public static void main(String[] args) { // TODO Auto-generated method stub //ExStart: SetAdditionalProperties // PT_MV_FLOAT, PT_MV_R4, mv.float MapiMessage msg = new MapiMessage(); IList values = (IList) new ArrayList(); values.addItem((float) 1); values.addItem((float) 2); msg.setProperty(new MapiProperty(0x23901004, values)); //PT_MV_DOUBLE, PT_MV_R8 values = (IList) new ArrayList(); values.addItem((double) 1); values.addItem((double) 2); msg.setProperty(new MapiProperty(0x23901005, values)); //PT_MV_APPTIME values = (IList) new ArrayList(); values.addItem(30456.34); values.addItem(40655.45); msg.setProperty(new MapiProperty(0x23901007, values)); //PT_MV_I8, PT_MV_LONGLONG values = (IList) new ArrayList(); values.addItem((long) 30456); values.addItem((long) 40655); msg.setProperty(new MapiProperty(0x23901014, values)); //PT_MV_SHORT, PT_MV_I2, mv.i2 values = (IList) new ArrayList(); values.addItem((short) 1); values.addItem((short) 2); msg.setProperty(new MapiProperty(0x23901002, values)); //PT_MV_BOOLEAN values = (IList) new ArrayList(); values.addItem(true); values.addItem(false); msg.setProperty(new MapiProperty(0x2390100b, values)); //PT_NULL msg.setProperty(new MapiProperty(0x67400001, new byte[1])); //PT_MV_LONG values = (IList) new ArrayList(); values.addItem((int) 4); UUID uuid = UUID.randomUUID(); MapiProperty property = new MapiProperty(msg.getNamedPropertyMapping().getNextAvailablePropertyId(MapiPropertyType.PT_MV_LONG), values); msg.getNamedPropertyMapping().addNamedPropertyMapping(property, 0x00008028, uuid); msg.setProperty(property); //OR you can set the custom property (with the custom name) MapiMessage message = new MapiMessage("sender@test.com", "recipient@test.com", "subj", "Body of test msg"); values = (IList) new ArrayList(); values.addItem((int) 4); property = new MapiProperty(message.getNamedPropertyMapping().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 = 123.456F; MapiMessage newMsg = new MapiMessage(); long floatTag = newMsg.getNamedPropertyMapping().getNextAvailablePropertyId(MapiPropertyType.PT_FLOAT); UUID guid = UUID.randomUUID(); MapiProperty newMapiProperty = new MapiProperty(floatTag, BitConverter.getBytesSingle(floatValue)); newMsg.getNamedPropertyMapping().addNamedPropertyMapping(newMapiProperty,(long) 12, guid); newMsg.setProperty(newMapiProperty); boolean propertyIsOk = false; for (MapiNamedProperty prop : (Iterable<MapiNamedProperty>) newMsg.getNamedProperties().getValues()) { if (prop.getGuid().equals(guid)) { float val = prop.getFloat(); propertyIsOk = val == floatValue; } } //ExEnd: SetAdditionalProperties } }