MapiAttachment
Inheritance: java.lang.Object, com.aspose.email.MapiPropertyContainer
public class MapiAttachment extends MapiPropertyContainer
Represents a message attachment.
This class encapsulates an attachment, providing methods to access and manipulate its properties.
Example:
// This code example loads a message from a file and iterates over each attachment.
// If an attachment is inline, it prints its display name.
// If not, it checks if the attachment is an embedded message.
// If so, it saves the attachment to a memory stream.
// If not, it saves to a specified path.
// Load the MAPI message from the specified file
MapiMessage msg = MapiMessage.load("source.msg");
// Iterate over each attachment in the MAPI message
for (MapiAttachment mapiAttachment : msg.getAttachments()) {
// Check if the attachment is inline
if (mapiAttachment.isInline()) {
// If inline, print its display name
System.out.println("Inline: " + mapiAttachment.getDisplayName());
} else {
// If not inline
// Check if the attachment contains an embedded message
if (mapiAttachment.getObjectData() != null && mapiAttachment.getObjectData().isOutlookMessage()) {
// If it's an embedded message
// Save the attachment to a memory stream
try (ByteArrayOutputStream ms = new ByteArrayOutputStream()) {
mapiAttachment.save(ms);
byte[] bytes = ms.toByteArray();
try (ByteArrayInputStream msInput = new ByteArrayInputStream(bytes)) {
// Load the embedded message from the memory stream
MapiMessage embeddedMessage = MapiMessage.load(msInput);
}
} catch (IOException e) {
e.printStackTrace();
}
} else {
// If it's not an embedded message
// Save the attachment to the specified path
mapiAttachment.save(Paths.get(path, mapiAttachment.getLongFileName()).toString());
}
}
}
Methods
Method | Description |
---|---|
createMapiNode(String key) | Creates the mapi node. |
equals(Object arg0) | |
getBinaryData() | Gets or sets binary attachment data. |
getClass() | |
getCodePage() | Gets the code page. |
getContent() | Gets the content. |
getDisplayName() | Gets the display name of the ole object in an attachment. |
getExtension() | Gets a filename extension that indicates the document type of an attachment. |
getFileName() | Gets an attachment’s base filename and extension, excluding path. |
getItemId() | The item id, uses with a server |
getLongFileName() | Gets an attachment’s long filename and extension, excluding path. |
getMimeTag() | Gets formatting information about a Multipurpose Internet Mail Extensions (MIME) attachment. |
getNamedProperties() | Gets the named properties of message. |
getObjectData() | Gets an attachment object typically accessed through the OLE IStorage interface. |
getProperties() | Gets the collection of properties. |
getProperty(PropertyDescriptor pd) | Gets MAPI property by property descriptor. |
getPropertyBoolean(long tag) | Gets the value of the property specified by tag as Boolean type. |
getPropertyBytes(long tag) | Gets the string value of the property specified by tag. |
getPropertyDateTime(long key) | Gets the value of the property specified by tag as DateTime type. |
getPropertyInt32(long tag) | Gets the int32 value of the property specified by tag. |
getPropertyLong(long tag) | Gets the value of the property specified by tag as Long (int64) type. |
getPropertyShort(long tag) | Gets the value of the property specified by tag as Short type. |
getPropertyStream() | Gets the property stream. |
getPropertyString(long tag) | Gets the string value of the property specified by tag. |
getPropertyString(long tag, int codepage) | Gets the string value of the property specified by tag. |
getSubStorages() | Gets the sub storages. |
hashCode() | |
isInline() | Gets a value indicating whether the attachment is inline or regular. |
isReference() | Gets a value indicating whether the attachment is stored as a reference rather than being embedded in the email. |
isStoreUnicodeOk() | Determines if string properties are Unicode encoded or not. |
notify() | |
notifyAll() | |
removeProperty(long tag) | Provides correctly removing property from all collections. |
save(OutputStream stream) | Save attachment content. |
save(String filename) | Save attachment content. |
setBinaryData(byte[] value) | Gets or sets binary attachment data. |
setDisplayName(String value) | Gets the display name of the ole object in an attachment. |
setProperty(MapiProperty value) | Sets the property. |
setProperty(PropertyDescriptor pd, Object value) | Sets MAPI property. |
toString() | |
tryGetPropertyData(long tag) | Try to get the property data with specified tag key. |
tryGetPropertyDateTime(long tag, Date[] value) | Gets the value of the specified property as DateTime type. |
tryGetPropertyInt32(long tag, int[] value) | Gets the value of the specified property as Int32 type. |
tryGetPropertyLong(long tag, long[] value) | Gets the value of the specified property as Long type. |
tryGetPropertyString(long tag) | Try to get a property data as string with specified tag. |
tryGetPropertyString(long tag, int codepage) | Try to get a property data as string with specified tag and code page. |
tryGetPropertyString(long tag, String[] value) | Gets the value of the specified property as String type. |
tryGetPropertyString(long tag, String[] value, int codepage) | Gets the value of the specified property as String type. |
wait() | |
wait(long arg0) | |
wait(long arg0, int arg1) |
createMapiNode(String key)
public IMapiNode createMapiNode(String key)
Creates the mapi node.
Parameters:
Parameter | Type | Description |
---|---|---|
key | java.lang.String | The node key. |
Returns: com.aspose.email.IMapiNode - The IMapiNode interface.
equals(Object arg0)
public boolean equals(Object arg0)
Parameters:
Parameter | Type | Description |
---|---|---|
arg0 | java.lang.Object |
Returns: boolean
getBinaryData()
public final byte[] getBinaryData()
Gets or sets binary attachment data.
Value: The binary data.
Returns: byte[]
getClass()
public final native Class<?> getClass()
Returns: java.lang.Class
getCodePage()
public int getCodePage()
Gets the code page.
Value: The code page.
Returns: int
getContent()
public final Object getContent()
Gets the content.
Value: The content.
Returns: java.lang.Object
getDisplayName()
public final String getDisplayName()
Gets the display name of the ole object in an attachment.
Value: The display name.
Returns: java.lang.String
getExtension()
public final String getExtension()
Gets a filename extension that indicates the document type of an attachment.
Value: The extension.
Returns: java.lang.String
getFileName()
public final String getFileName()
Gets an attachment’s base filename and extension, excluding path.
Value: The file name.
Returns: java.lang.String
getItemId()
public String getItemId()
The item id, uses with a server
Returns: java.lang.String
getLongFileName()
public final String getLongFileName()
Gets an attachment’s long filename and extension, excluding path.
Value: The long file name.
Returns: java.lang.String
getMimeTag()
public final String getMimeTag()
Gets formatting information about a Multipurpose Internet Mail Extensions (MIME) attachment.
Value: The mime tag.
Returns: java.lang.String
getNamedProperties()
public final MapiPropertyCollection getNamedProperties()
Gets the named properties of message.
Value: The collection of named properties.
Returns: MapiPropertyCollection
getObjectData()
public final MapiObjectProperty getObjectData()
Gets an attachment object typically accessed through the OLE IStorage interface.
Value: The object data.
Returns: MapiObjectProperty
getProperties()
public MapiPropertyCollection getProperties()
Gets the collection of properties.
Value: The properties.
Returns: MapiPropertyCollection
getProperty(PropertyDescriptor pd)
public MapiProperty getProperty(PropertyDescriptor pd)
Gets MAPI property by property descriptor.
Parameters:
Parameter | Type | Description |
---|---|---|
pd | PropertyDescriptor | Property descriptor for looked property |
Returns: MapiProperty - Mapi property if it is found, otherwise null.
getPropertyBoolean(long tag)
public final Boolean getPropertyBoolean(long tag)
Gets the value of the property specified by tag as Boolean type.
Parameters:
Parameter | Type | Description |
---|---|---|
tag | long | The MAPI property tag. |
Returns: java.lang.Boolean - The value of the property. If the property does not exist, returns NULL; otherwise, returns the value.
getPropertyBytes(long tag)
public final byte[] getPropertyBytes(long tag)
Gets the string value of the property specified by tag.
Parameters:
Parameter | Type | Description |
---|---|---|
tag | long | The MAPI property tag. |
Returns: byte[] - The value of the property. If the property does not exist, returns NULL; otherwise, returns the value.
getPropertyDateTime(long key)
public final Date getPropertyDateTime(long key)
Gets the value of the property specified by tag as DateTime type.
Parameters:
Parameter | Type | Description |
---|---|---|
key | long | The MAPI property tag. |
Returns: java.util.Date - The value of the property. If the property does not exist, returns NULL; otherwise, returns the value.
getPropertyInt32(long tag)
public final Integer getPropertyInt32(long tag)
Gets the int32 value of the property specified by tag.
Parameters:
Parameter | Type | Description |
---|---|---|
tag | long | The MAPI property tag. |
Returns: java.lang.Integer - The value of the property. If the property does not exist, returns NULL; otherwise, returns the value.
getPropertyLong(long tag)
public final Long getPropertyLong(long tag)
Gets the value of the property specified by tag as Long (int64) type.
Parameters:
Parameter | Type | Description |
---|---|---|
tag | long | The MAPI property tag. |
Returns: java.lang.Long - The value of the property. If the property does not exist, returns NULL; otherwise, returns the value.
getPropertyShort(long tag)
public final Short getPropertyShort(long tag)
Gets the value of the property specified by tag as Short type.
Parameters:
Parameter | Type | Description |
---|---|---|
tag | long | The MAPI property tag. |
Returns: java.lang.Short - The value of the property. If the property does not exist, returns NULL; otherwise, returns the value.
getPropertyStream()
public final MapiPropertyStream getPropertyStream()
Gets the property stream.
Value: The property stream.
Returns: MapiPropertyStream
getPropertyString(long tag)
public final String getPropertyString(long tag)
Gets the string value of the property specified by tag.
Parameters:
Parameter | Type | Description |
---|---|---|
tag | long | The MAPI property tag. |
Returns: java.lang.String - The value of the property. If the property does not exist, returns NULL; otherwise, returns the value.
getPropertyString(long tag, int codepage)
public final String getPropertyString(long tag, int codepage)
Gets the string value of the property specified by tag.
Parameters:
Parameter | Type | Description |
---|---|---|
tag | long | The MAPI property tag. |
codepage | int | The specified codepage used to get string value. |
Returns: java.lang.String - The value of the property. If the property does not exist, returns NULL; otherwise, returns the value.
getSubStorages()
public final MapiPropertyCollection getSubStorages()
Gets the sub storages.
Value: The sub storages.
Returns: MapiPropertyCollection
hashCode()
public native int hashCode()
Returns: int
isInline()
public boolean isInline()
Gets a value indicating whether the attachment is inline or regular. If inline returns true, otherwise false.
Returns: boolean
isReference()
public final boolean isReference()
Gets a value indicating whether the attachment is stored as a reference rather than being embedded in the email.
Value: true if the attachment is stored as a reference; otherwise, false .
This property determines if the attachment is referenced by its file path or a web link based on the PidTagAttachMethod MAPI property. The following values indicate a reference-based attachment:
- 0x00000002 - afByReference : The attachment is identified by a fully qualified file path, accessible to recipients with shared access to the file server.
- 0x00000004 - afByReferenceOnly : The attachment is identified solely by its fully qualified file path.
- 0x00000007 - afByWebReference : The attachment is identified by a web link, with the PidNameAttachmentProviderType specifying the web service API handling the attachment.
If the attachment does not match these criteria, this property returns false .
Returns: boolean
isStoreUnicodeOk()
public final boolean isStoreUnicodeOk()
Determines if string properties are Unicode encoded or not.
Returns: boolean - True, if string properties are Unicode encoded.
notify()
public final native void notify()
notifyAll()
public final native void notifyAll()
removeProperty(long tag)
public final void removeProperty(long tag)
Provides correctly removing property from all collections.
Parameters:
Parameter | Type | Description |
---|---|---|
tag | long | The tag of MapiProperty. |
save(OutputStream stream)
public final void save(OutputStream stream)
Save attachment content.
Parameters:
Parameter | Type | Description |
---|---|---|
stream | java.io.OutputStream | The stream to save. |
save(String filename)
public final void save(String filename)
Save attachment content.
Parameters:
Parameter | Type | Description |
---|---|---|
filename | java.lang.String | The file name to save. |
setBinaryData(byte[] value)
public final void setBinaryData(byte[] value)
Gets or sets binary attachment data.
Value: The binary data.
Parameters:
Parameter | Type | Description |
---|---|---|
value | byte[] |
setDisplayName(String value)
public final void setDisplayName(String value)
Gets the display name of the ole object in an attachment.
Value: The display name.
Parameters:
Parameter | Type | Description |
---|---|---|
value | java.lang.String |
setProperty(MapiProperty value)
public void setProperty(MapiProperty value)
Sets the property.
Parameters:
Parameter | Type | Description |
---|---|---|
value | MapiProperty | The property. |
setProperty(PropertyDescriptor pd, Object value)
public void setProperty(PropertyDescriptor pd, Object value)
Sets MAPI property.
Parameters:
Parameter | Type | Description |
---|---|---|
pd | PropertyDescriptor | The property descriptor. |
value | java.lang.Object | The property data. |
toString()
public String toString()
Returns: java.lang.String
tryGetPropertyData(long tag)
public final byte[] tryGetPropertyData(long tag)
Try to get the property data with specified tag key.
Parameters:
Parameter | Type | Description |
---|---|---|
tag | long | The tag key. |
Returns: byte[] - The property data.
tryGetPropertyDateTime(long tag, Date[] value)
public final boolean tryGetPropertyDateTime(long tag, Date[] value)
Gets the value of the specified property as DateTime type. A return value indicates whether the operation succeeded.
Parameters:
Parameter | Type | Description |
---|---|---|
tag | long | The MAPI property tag. |
value | java.util.Date[] | When this method returns, contains the value of the specified property, if the property exists. This parameter is passed uninitialized. |
Returns: boolean - true if s was converted successfully; otherwise, false.
tryGetPropertyInt32(long tag, int[] value)
public final boolean tryGetPropertyInt32(long tag, int[] value)
Gets the value of the specified property as Int32 type. A return value indicates whether the operation succeeded.
Parameters:
Parameter | Type | Description |
---|---|---|
tag | long | The MAPI property tag. |
value | int[] | When this method returns, contains the value of the specified property, if the property exists. This parameter is passed uninitialized. |
Returns: boolean - true if s was converted successfully; otherwise, false.
tryGetPropertyLong(long tag, long[] value)
public final boolean tryGetPropertyLong(long tag, long[] value)
Gets the value of the specified property as Long type. A return value indicates whether the operation succeeded.
Parameters:
Parameter | Type | Description |
---|---|---|
tag | long | The MAPI property tag. |
value | long[] | When this method returns, contains the value of the specified property, if the property exists. This parameter is passed uninitialized. |
Returns: boolean - true if s was converted successfully; otherwise, false.
tryGetPropertyString(long tag)
public final String tryGetPropertyString(long tag)
Try to get a property data as string with specified tag.
Parameters:
Parameter | Type | Description |
---|---|---|
tag | long | The property tag key. |
Returns: java.lang.String - String that contains the contents of property data.
tryGetPropertyString(long tag, int codepage)
public final String tryGetPropertyString(long tag, int codepage)
Try to get a property data as string with specified tag and code page.
Parameters:
Parameter | Type | Description |
---|---|---|
tag | long | The property tag key. |
codepage | int | The code page. |
Returns: java.lang.String - String that contains the contents of property data.
tryGetPropertyString(long tag, String[] value)
public final boolean tryGetPropertyString(long tag, String[] value)
Gets the value of the specified property as String type. A return value indicates whether the operation succeeded.
Parameters:
Parameter | Type | Description |
---|---|---|
tag | long | The MAPI property tag. |
value | java.lang.String[] | When this method returns, contains the value of the specified property, if the property exists. This parameter is passed uninitialized. |
Returns: boolean - true if s was converted successfully; otherwise, false.
tryGetPropertyString(long tag, String[] value, int codepage)
public final boolean tryGetPropertyString(long tag, String[] value, int codepage)
Gets the value of the specified property as String type. A return value indicates whether the operation succeeded.
Parameters:
Parameter | Type | Description |
---|---|---|
tag | long | The MAPI property tag. |
value | java.lang.String[] | When this method returns, contains the value of the specified property, if the property exists. This parameter is passed uninitialized. |
codepage | int | The specified codepage used to get string value. |
Returns: boolean - true if s was converted successfully; otherwise, false.
wait()
public final void wait()
wait(long arg0)
public final native void wait(long arg0)
Parameters:
Parameter | Type | Description |
---|---|---|
arg0 | long |
wait(long arg0, int arg1)
public final void wait(long arg0, int arg1)
Parameters:
Parameter | Type | Description |
---|---|---|
arg0 | long | |
arg1 | int |