Skip to main content
Glama
email_utils.py2.17 kB
"""Core email utilities and helpers.""" import logging from pathlib import Path from typing import Any, Dict logger = logging.getLogger(__name__) class EmailRetrievalMode: """Simplified email retrieval modes.""" COMPREHENSIVE = "comprehensive" # Always return full text content def get_mime_type(filename: str) -> str: """Determine MIME type from file extension.""" ext = Path(filename).suffix.lower() mime_types = { '.jpg': 'image/jpeg', '.jpeg': 'image/jpeg', '.png': 'image/png', '.gif': 'image/gif', '.bmp': 'image/bmp', '.ico': 'image/x-icon', '.txt': 'text/plain', '.html': 'text/html', '.htm': 'text/html', '.css': 'text/css', '.js': 'application/javascript', '.json': 'application/json', '.xml': 'application/xml', '.pdf': 'application/pdf', '.csv': 'text/csv', '.doc': 'application/msword', '.docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', '.xls': 'application/vnd.ms-excel', '.xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', '.ppt': 'application/vnd.ms-powerpoint', '.pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation', } return mime_types.get(ext, 'application/octet-stream') def format_file_size(size_bytes: int) -> str: """Format file size in human-readable format.""" if size_bytes == 0: return "0 B" size_names = ["B", "KB", "MB", "GB"] i = 0 while size_bytes >= 1024 and i < len(size_names) - 1: size_bytes /= 1024.0 i += 1 return f"{size_bytes:.1f} {size_names[i]}" def _format_recipient_for_display(recipient: Any) -> str: """Format recipient for display.""" if isinstance(recipient, dict): name = recipient.get("name", "") email = recipient.get("email", "") if name and email: return f"{name} <{email}>" elif name: return name elif email: return email else: return "Unknown Recipient" else: return str(recipient) if recipient else "Unknown Recipient"

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/marlonluo2018/outlook-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server