mail/js_export.go

57 lines
1.2 KiB
Go
Raw Normal View History

package mail
import (
"apigo.cc/go/cast"
"apigo.cc/go/jsmod"
)
func init() {
jsmod.Register("mail", map[string]any{
// 默认邮箱操作 (对齐 PascalCase)
"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)
},
// 多实例获取 (对齐 PascalCase支持可选参数)
"Mailbox": func(name *string) *jsMailbox {
target := "default"
if name != nil {
target = *name
}
m := GetMailbox(target)
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()
}