taolib.testing.email_service.services.tracking_service#

追踪和分析服务。

记录邮件追踪事件并提供分析数据。

Classes#

EmailAnalytics

邮件分析数据。

TrackingService

追踪和分析服务。

Module Contents#

class taolib.testing.email_service.services.tracking_service.EmailAnalytics#

Bases: pydantic.BaseModel

邮件分析数据。

total_sent: int#
total_delivered: int#
total_opened: int#
total_clicked: int#
total_bounced: int#
total_failed: int#
delivery_rate: float#
open_rate: float#
click_rate: float#
bounce_rate: float#
class taolib.testing.email_service.services.tracking_service.TrackingService(tracking_repo: taolib.testing.email_service.repository.tracking_repo.TrackingRepository, email_repo: taolib.testing.email_service.repository.email_repo.EmailRepository)#

追踪和分析服务。

_tracking_repo#
_email_repo#
async record_event(email_id: str, event_type: taolib.testing.email_service.models.enums.TrackingEventType, recipient: str, provider: str | None = None, ip_address: str | None = None, user_agent: str | None = None, click_url: str | None = None, bounce_type: str | None = None, bounce_reason: str | None = None, raw_payload: dict | None = None) taolib.testing.email_service.models.tracking.TrackingEventResponse#

记录追踪事件。

同时更新关联的 EmailDocument 状态。

async get_events_for_email(email_id: str) list[taolib.testing.email_service.models.tracking.TrackingEventResponse]#

获取邮件的所有追踪事件。

async get_analytics(start: datetime.datetime, end: datetime.datetime) EmailAnalytics#

获取时间范围内的分析数据。

async get_daily_stats(start: datetime.datetime, end: datetime.datetime) list[dict]#

获取按日统计数据。

async _update_email_status(email_id: str, event_type: taolib.testing.email_service.models.enums.TrackingEventType, timestamp: datetime.datetime) None#

根据追踪事件更新邮件状态。