package emailcli import ( "context" "fmt" ) // GetQueueStatus 查询各通道当前排队长度与延迟重试队列长度。 // // GET /api/v1/queue/status ServiceAuth func (c *Client) GetQueueStatus(ctx context.Context) (*QueueStatusData, error) { return get[*QueueStatusData](c, ctx, "/api/v1/queue/status", nil) } // ListQueuePending 分页查询排队中/发送中的邮件。 // // GET /api/v1/queue/pending?page=&page_size=&channel_id=&user_id=&account_id= ServiceAuth func (c *Client) ListQueuePending(ctx context.Context, q QueuePendingQuery) (*PaginationResult[MailLog], error) { params := mergeParams(paginationParams(q.PaginationQuery), map[string]interface{}{ "channel_id": q.ChannelID, "user_id": q.UserID, "account_id": q.AccountID, }) return get[*PaginationResult[MailLog]](c, ctx, "/api/v1/queue/pending", buildQuery(params)) } // CancelQueueItem 取消一封队列中的邮件,邮件状态会被标记为放弃并退还配额。 // // POST /api/v1/queue/{mailLogID}/cancel ServiceAuth func (c *Client) CancelQueueItem(ctx context.Context, mailLogID uint) error { _, err := post[any](c, ctx, fmt.Sprintf("/api/v1/queue/%d/cancel", mailLogID), nil) return err } // RetryQueueItem 重新入队一封失败的邮件。 // // POST /api/v1/queue/{mailLogID}/retry ServiceAuth func (c *Client) RetryQueueItem(ctx context.Context, mailLogID uint) error { _, err := post[any](c, ctx, fmt.Sprintf("/api/v1/queue/%d/retry", mailLogID), nil) return err }