Source code for mindroot.coreplugins.email.services
fromtypingimportDict,List,Optionalfrom.email_providerimportEmailProvider# Global provider instance_provider=None
[docs]asyncdefinit_provider(config:Dict)->None:"""Initialize the email provider with config"""global_provider_provider=EmailProvider(config)
[docs]asyncdefget_provider()->EmailProvider:"""Get the provider instance, initializing with defaults if needed"""global_providerif_providerisNone:raiseRuntimeError("Email provider not initialized. Call init_provider first.")return_provider
# Removed @service() decorator - this is now just a helper function# The actual service is in mod.py
[docs]asyncdefsend_email_helper(config:Dict,to:str,subject:str,body:str,reply_to_message:Dict=None,headers:Dict=None)->Dict:"""Helper function to send an email (not a service)"""provider=awaitget_provider()returnawaitprovider.send_email(to=to,subject=subject,body=body,reply_to_message=reply_to_message,headers=headers)
[docs]asyncdefcheck_emails(config:Dict,folder:str="INBOX",criteria:Dict=None,batch_size:int=None,max_messages:int=None,start_id:str=None)->Dict:"""Service to check for new emails with pagination support"""provider=awaitget_provider()returnawaitprovider.check_emails(folder=folder,criteria=criteria,batch_size=batch_size,max_messages=max_messages,start_id=start_id)
[docs]asyncdefmark_as_processed(config:Dict,message_ids:List[str],folder:str="INBOX")->Dict:"""Service to mark emails as processed"""provider=awaitget_provider()returnawaitprovider.mark_as_processed(message_ids=message_ids,folder=folder)