package mail import ( "apigo.cc/go/cast" "apigo.cc/go/jsmod" ) func init() { jsmod.Register("mail", map[string]any{ // 默认邮箱操作 "send": func(to any, subject, content string, option *SendOption) error { var toList []string cast.Convert(&toList, to) return Send(toList, subject, content, option) }, "recv": func(opt *RecvOption) (*RecvResult, error) { return Recv(opt) }, // 多实例获取 "mailbox": func(name string) *jsMailbox { m := GetMailbox(name) if m == nil { return nil } return &jsMailbox{m: m} }, // 辅助工具 "formatAddr": FormatAddr, "parseAddr": ParseAddr, }) } // jsMailbox 包装 Mailbox 实例 type jsMailbox struct { m *Mailbox } func (j *jsMailbox) Send(to any, subject, content string, option *SendOption) error { var toList []string cast.Convert(&toList, to) return j.m.Send(toList, subject, content, option) } func (j *jsMailbox) Recv(opt *RecvOption) (*RecvResult, error) { return j.m.Recv(opt) } func (j *jsMailbox) Health() error { return j.m.Health() }