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. |
loadFromTnef(InputStream stream) | Load MapiAttachment from stream with tnef content. |
loadFromTnef(String fileName) | Load MapiAttachment from file with tnef content. |
notify() | |
notifyAll() | |
removeProperty(long tag) | Provides correctly removing property from all collections. |
save(OutputStream stream) | Save attachment content. |
save(String filename) | Save attachment content. |
saveToTnef(OutputStream stream) | Save attachment to tnef content. |
saveToTnef(String filename) | Save attachment to tnef 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.
loadFromTnef(InputStream stream)
public static MapiAttachment loadFromTnef(InputStream stream)
Load MapiAttachment from stream with tnef content.
Parameters:
Parameter | Type | Description |
---|---|---|
stream | java.io.InputStream | Source stream |
Returns: MapiAttachment - MapiAttachment
loadFromTnef(String fileName)
public static MapiAttachment loadFromTnef(String fileName)
Load MapiAttachment from file with tnef content.
Parameters:
Parameter | Type | Description |
---|---|---|
fileName | java.lang.String | Source file path. |
Returns: MapiAttachment - MapiAttachment
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. |
saveToTnef(OutputStream stream)
public final void saveToTnef(OutputStream stream)
Save attachment to tnef content.
Parameters:
Parameter | Type | Description |
---|---|---|
stream | java.io.OutputStream | The stream to save. |
saveToTnef(String filename)
public final void saveToTnef(String filename)
Save attachment to tnef 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 |