MCPcopy Create free account
hub / github.com/Mnexa-AI/e2a / handleTestSend

Method handleTestSend

internal/httpapi/outbound.go:164–198  ·  view source on GitHub ↗
(ctx context.Context, in *AddressParam)

Source from the content-addressed store, hash-verified

162}
163
164func (s *Server) handleTestSend(ctx context.Context, in *AddressParam) (*sendOutput, error) {
165 ag, err := s.resolveOwnedAgent(ctx, in.Address)
166 if err != nil {
167 return nil, err
168 }
169 user, uerr := s.requireUser(ctx)
170 if uerr != nil {
171 return nil, uerr
172 }
173 if env := s.checkSendLimit(ag.ID); env != nil {
174 return nil, env
175 }
176 if !ag.DomainVerified {
177 return nil, NewError(http.StatusForbidden, "domain_not_verified", "agent domain must be verified before sending test email")
178 }
179 if s.deps.EnforceMessageSend != nil {
180 if err := s.deps.EnforceMessageSend(ctx, user.ID); err != nil {
181 if env, ok := limitEnvelope(err); ok {
182 return nil, env
183 }
184 return nil, NewError(http.StatusInternalServerError, "internal_error", "limits check failed")
185 }
186 }
187 if s.deps.SendTest == nil {
188 return nil, NewError(http.StatusInternalServerError, "internal_error", "test send unavailable")
189 }
190 res, derr := s.deps.SendTest(ctx, ag)
191 if derr != nil {
192 return nil, NewError(derr.Status, derr.Code, derr.Msg)
193 }
194 if res.Held {
195 return &sendOutput{Status: http.StatusAccepted, Body: SendResultView{Status: "pending_review", MessageID: res.PendingMessageID, ApprovalExpiresAt: res.ApprovalExpiresAt}}, nil
196 }
197 return &sendOutput{Status: http.StatusOK, Body: SendResultView{Status: "sent", MessageID: res.MessageID, ProviderMessageID: res.ProviderMessageID, SentAs: res.SentAs, Method: res.Method}}, nil
198}
199
200// ReplyRequest mirrors the legacy reply body.
201type ReplyRequest struct {

Callers

nothing calls this directly

Calls 5

resolveOwnedAgentMethod · 0.95
requireUserMethod · 0.95
checkSendLimitMethod · 0.95
NewErrorFunction · 0.85
limitEnvelopeFunction · 0.85

Tested by

no test coverage detected