class ItemAttachment
A class representing an attachment that contains an Outlook item (contact, event, or message) attached to a user event, message, or post.
/tf/active/vicechatdev/SPFCsync/venv/lib64/python3.11/site-packages/office365/outlook/mail/attachments/item.py
5 - 15
simple
Purpose
ItemAttachment extends the Attachment base class to provide specialized handling for attachments that are themselves Outlook items (contacts, events, or messages). It provides access to the underlying OutlookItem through a property interface, enabling retrieval and manipulation of the attached item's data within the Office365 API context.
Source Code
class ItemAttachment(Attachment):
"""A contact, event, or message that's attached to a user event, message, or post."""
@property
def item(self):
"""The attached message or event."""
from office365.outlook.item import OutlookItem
return self.properties.get(
"item", OutlookItem(self.context, ResourcePath("item", self.resource_path))
)
Parameters
| Name | Type | Default | Kind |
|---|---|---|---|
bases |
Attachment | - |
Parameter Details
context: The client context object required for API communication with Office365 services. Inherited from parent Attachment class constructor.
resource_path: The ResourcePath object that defines the location of this attachment resource in the Office365 API hierarchy. Inherited from parent Attachment class constructor.
Return Value
Instantiation returns an ItemAttachment object that provides access to the attached Outlook item. The 'item' property returns an OutlookItem instance representing the attached contact, event, or message.
Class Interface
Methods
@property item(self) -> OutlookItem
property
Purpose: Retrieves the attached Outlook item (contact, event, or message) associated with this attachment
Returns: An OutlookItem instance representing the attached item. Returns cached value from properties if available, otherwise creates a new OutlookItem with the appropriate resource path
Attributes
| Name | Type | Description | Scope |
|---|---|---|---|
context |
ClientContext | The client context object for Office365 API communication, inherited from parent Attachment class | instance |
resource_path |
ResourcePath | The resource path defining the location of this attachment in the Office365 API hierarchy, inherited from parent Attachment class | instance |
properties |
dict | Dictionary storing the attachment's properties, including the cached 'item' value if previously accessed, inherited from parent class | instance |
Dependencies
office365office365.outlook.mail.attachments.attachmentoffice365.outlook.itemoffice365.runtime.paths.resource_path
Required Imports
from office365.outlook.mail.attachments.item_attachment import ItemAttachment
from office365.outlook.mail.attachments.attachment import Attachment
from office365.runtime.paths.resource_path import ResourcePath
Conditional/Optional Imports
These imports are only needed under specific conditions:
from office365.outlook.item import OutlookItem
Condition: Lazy imported when the 'item' property is accessed for the first time
Required (conditional)Usage Example
# Assuming you have an authenticated context and a message with attachments
from office365.outlook.mail.attachments.item_attachment import ItemAttachment
from office365.runtime.paths.resource_path import ResourcePath
# Get an item attachment from a message
message = context.get_message('message_id')
attachments = message.attachments.get().execute_query()
# Find item attachments
for attachment in attachments:
if isinstance(attachment, ItemAttachment):
# Access the attached Outlook item
attached_item = attachment.item
# Work with the attached item (could be a message, event, or contact)
print(f"Attached item type: {type(attached_item).__name__}")
# Access item properties
if hasattr(attached_item, 'subject'):
print(f"Subject: {attached_item.subject}")
Best Practices
- Always ensure the parent context object is properly authenticated before accessing the item property
- The item property uses lazy loading - the OutlookItem is only created when first accessed
- The item property returns a cached value from self.properties if available, otherwise creates a new OutlookItem instance
- ItemAttachment inherits from Attachment, so all parent class methods and properties are available
- Use isinstance() checks to differentiate ItemAttachment from other attachment types (FileAttachment, ReferenceAttachment)
- The attached item may need to be loaded via execute_query() to retrieve its full properties from the server
- Handle potential None values when accessing item properties, as the item may not be fully loaded
Tags
Similar Components
AI-powered semantic similarity - components with related functionality:
-
class FileAttachment 80.2% similar
-
class Attachment 78.7% similar
-
class AttachmentItem 78.2% similar
-
class ReferenceAttachment 67.7% similar
-
class OutlookItem 67.5% similar