CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-pyobjc-framework-mailkit

Python bindings for Apple's MailKit framework, enabling developers to create mail extensions that integrate with macOS Mail applications

Pending
Overview
Eval results
Files

message-actions.mddocs/

Message Actions

Message action handling including flagging, coloring, and custom action decision workflows. This module provides functionality for performing actions on messages within the Mail application.

Capabilities

MEMessageAction

Represents actions that can be performed on messages including flagging and coloring. This is the primary class for working with message actions.

class MEMessageAction:
    """
    Represents an action that can be performed on a message.
    
    Note: This class cannot be instantiated directly using init() or new().
    Instances are created by the Mail framework based on user actions.
    """

MEMessageActionDecision

Represents decisions for message actions. Used to communicate action decisions back to the Mail framework.

class MEMessageActionDecision:
    """
    Represents a decision about a message action.
    
    Note: This class cannot be instantiated directly using init() or new().
    Instances are provided by the Mail framework.
    """

Message Action Flags

Constants representing different message flag types:

MEMessageActionFlagNone: int         # = 0, No flag
MEMessageActionFlagDefaultColor: int # = 1, Default color flag
MEMessageActionFlagRed: int          # = 2, Red flag
MEMessageActionFlagOrange: int       # = 3, Orange flag
MEMessageActionFlagYellow: int       # = 4, Yellow flag
MEMessageActionFlagGreen: int        # = 5, Green flag
MEMessageActionFlagBlue: int         # = 6, Blue flag
MEMessageActionFlagPurple: int       # = 7, Purple flag
MEMessageActionFlagGray: int         # = 8, Gray flag

Message Action Colors

Constants representing different message color options:

MEMessageActionMessageColorNone: int   # = 0, No color
MEMessageActionMessageColorGreen: int  # = 1, Green color
MEMessageActionMessageColorYellow: int # = 2, Yellow color
MEMessageActionMessageColorOrange: int # = 3, Orange color
MEMessageActionMessageColorRed: int    # = 4, Red color
MEMessageActionMessageColorPurple: int # = 5, Purple color
MEMessageActionMessageColorBlue: int   # = 6, Blue color
MEMessageActionMessageColorGray: int   # = 7, Gray color

Enum Types

Type definitions for message action enums:

MEMessageActionFlag: type        # Enum type for message action flags
MEMessageActionMessageColor: type # Enum type for message action colors

Usage Examples

Working with Message Flags

import MailKit

# Check message flag type
def handle_message_flag(flag_value):
    if flag_value == MailKit.MEMessageActionFlagRed:
        print("Message has red flag - high priority")
    elif flag_value == MailKit.MEMessageActionFlagYellow:
        print("Message has yellow flag - medium priority")
    elif flag_value == MailKit.MEMessageActionFlagGreen:
        print("Message has green flag - low priority")
    elif flag_value == MailKit.MEMessageActionFlagBlue:
        print("Message has blue flag - informational")
    elif flag_value == MailKit.MEMessageActionFlagNone:
        print("Message has no flag")
    else:
        print(f"Message has flag: {flag_value}")

# Example usage
handle_message_flag(MailKit.MEMessageActionFlagRed)

Working with Message Colors

import MailKit

# Set message color based on content analysis
def determine_message_color(message_content):
    if "urgent" in message_content.lower():
        return MailKit.MEMessageActionMessageColorRed
    elif "important" in message_content.lower():
        return MailKit.MEMessageActionMessageColorOrange
    elif "fyi" in message_content.lower():
        return MailKit.MEMessageActionMessageColorBlue
    else:
        return MailKit.MEMessageActionMessageColorNone

# Example usage
message_text = "This is an urgent request"
color = determine_message_color(message_text)

if color == MailKit.MEMessageActionMessageColorRed:
    print("Setting message color to red for urgent content")

Complete Flag and Color Reference

import MailKit

# All available flags
message_flags = {
    "none": MailKit.MEMessageActionFlagNone,
    "default": MailKit.MEMessageActionFlagDefaultColor,
    "red": MailKit.MEMessageActionFlagRed,
    "orange": MailKit.MEMessageActionFlagOrange,
    "yellow": MailKit.MEMessageActionFlagYellow,
    "green": MailKit.MEMessageActionFlagGreen,
    "blue": MailKit.MEMessageActionFlagBlue,
    "purple": MailKit.MEMessageActionFlagPurple,
    "gray": MailKit.MEMessageActionFlagGray
}

# All available colors
message_colors = {
    "none": MailKit.MEMessageActionMessageColorNone,
    "green": MailKit.MEMessageActionMessageColorGreen,
    "yellow": MailKit.MEMessageActionMessageColorYellow,
    "orange": MailKit.MEMessageActionMessageColorOrange,
    "red": MailKit.MEMessageActionMessageColorRed,
    "purple": MailKit.MEMessageActionMessageColorPurple,
    "blue": MailKit.MEMessageActionMessageColorBlue,
    "gray": MailKit.MEMessageActionMessageColorGray
}

# Function to get flag name from value
def get_flag_name(flag_value):
    for name, value in message_flags.items():
        if value == flag_value:
            return name
    return "unknown"

# Function to get color name from value  
def get_color_name(color_value):
    for name, value in message_colors.items():
        if value == color_value:
            return name
    return "unknown"

# Example usage
flag_name = get_flag_name(MailKit.MEMessageActionFlagRed)
color_name = get_color_name(MailKit.MEMessageActionMessageColorBlue)
print(f"Flag: {flag_name}, Color: {color_name}")

Working with Enum Types

import MailKit

# Check if a value is a valid message action flag
def is_valid_message_flag(value):
    valid_flags = [
        MailKit.MEMessageActionFlagNone,
        MailKit.MEMessageActionFlagDefaultColor,
        MailKit.MEMessageActionFlagRed,
        MailKit.MEMessageActionFlagOrange,
        MailKit.MEMessageActionFlagYellow,
        MailKit.MEMessageActionFlagGreen,
        MailKit.MEMessageActionFlagBlue,
        MailKit.MEMessageActionFlagPurple,
        MailKit.MEMessageActionFlagGray
    ]
    return value in valid_flags

# Check if a value is a valid message color
def is_valid_message_color(value):
    valid_colors = [
        MailKit.MEMessageActionMessageColorNone,
        MailKit.MEMessageActionMessageColorGreen,
        MailKit.MEMessageActionMessageColorYellow,
        MailKit.MEMessageActionMessageColorOrange,
        MailKit.MEMessageActionMessageColorRed,
        MailKit.MEMessageActionMessageColorPurple,
        MailKit.MEMessageActionMessageColorBlue,
        MailKit.MEMessageActionMessageColorGray
    ]
    return value in valid_colors

# Example usage
if is_valid_message_flag(MailKit.MEMessageActionFlagRed):
    print("Red flag is valid")

if is_valid_message_color(MailKit.MEMessageActionMessageColorBlue):
    print("Blue color is valid")

Install with Tessl CLI

npx tessl i tessl/pypi-pyobjc-framework-mailkit

docs

compose-sessions.md

extension-management.md

index.md

message-actions.md

message-classes.md

protocols-handlers.md

security-encryption.md

tile.json