diff --git a/base/aaa/email.go b/base/aaa/email.go index 39ec0cc0..801635c3 100644 --- a/base/aaa/email.go +++ b/base/aaa/email.go @@ -2,6 +2,7 @@ package aaa import ( "net/smtp" + "strings" "time" ice "shylinux.com/x/icebergs" @@ -54,3 +55,10 @@ func init() { }, mdb.HashAction(mdb.SHORT, mdb.NAME, mdb.FIELD, "time,name,service,username", ice.ACTION, SEND))}, }) } +func SendEmail(m *ice.Message, from, to, cc string, arg ...string) { + m.Option(ice.MSG_USERHOST, strings.Split(m.Option(ice.MSG_USERHOST), "://")[1]) + m.Cmdy(EMAIL, SEND, kit.Select(mdb.Config(m, EMAIL), from), kit.Select(m.Option(EMAIL), to), cc, + kit.Select(ice.Render(m, ice.RENDER_TEMPLATE, "subject.html"), arg, 0), + kit.Select(ice.Render(m, ice.RENDER_TEMPLATE, "content.html"), arg, 1), + ) +} diff --git a/base/aaa/offer.go b/base/aaa/offer.go index 468589a8..e94a2cca 100644 --- a/base/aaa/offer.go +++ b/base/aaa/offer.go @@ -24,12 +24,7 @@ func init() { OFFER: {Help: "邀请", Role: VOID, Actions: ice.MergeActions(ice.Actions{ mdb.CREATE: {Name: "create email*='shy@shylinux.com' subject content", Help: "邀请", Hand: func(m *ice.Message, arg ...string) { h := mdb.HashCreate(m.Spawn(), m.OptionSimple(EMAIL, SUBJECT, CONTENT), INVITE, m.Option(ice.MSG_USERNAME), mdb.STATUS, INVITE) - m.Option("link", m.Cmdx("host", "publish", m.MergePodCmd("", "", mdb.HASH, h))) - m.Option(ice.MSG_USERHOST, strings.Split(m.Option(ice.MSG_USERHOST), "://")[1]) - m.Cmd(EMAIL, SEND, mdb.Config(m, EMAIL), m.Option(EMAIL), "", - m.OptionDefault(SUBJECT, ice.Render(m, ice.RENDER_TEMPLATE, SUBJECT_HTML)), - m.OptionDefault(CONTENT, ice.Render(m, ice.RENDER_TEMPLATE, CONTENT_HTML)), - ) + SendEmail(m.Options("link", m.Cmdx("host", "publish", m.MergePodCmd("", "", mdb.HASH, h))), "", "", "") }}, ACCEPT: {Help: "接受", Role: VOID, Hand: func(m *ice.Message, arg ...string) { if m.Warn(m.Option(mdb.HASH) == "", ice.ErrNotValid, mdb.HASH) { diff --git a/base/aaa/portal/apply.go b/base/aaa/portal/apply.go index 5fefe184..6cc8628e 100644 --- a/base/aaa/portal/apply.go +++ b/base/aaa/portal/apply.go @@ -62,7 +62,7 @@ func (s apply) Login(m *ice.Message, arg ...string) { m.Options(ice.MSG_USERNAME, m.Option(aaa.EMAIL)) space := kit.Keys(kit.Slice(kit.Split(m.Option(ice.MSG_DAEMON), nfs.PT), 0, -1)) share := m.Cmd(web.SHARE, mdb.CREATE, mdb.TYPE, web.FIELD, mdb.NAME, web.CHAT_GRANT, mdb.TEXT, space).Append(mdb.LINK) - m.Cmdy(aaa.EMAIL, aaa.SEND, mdb.Config(m.Message, aaa.EMAIL), m.Option(aaa.EMAIL), "", "login contexts, please grant", html.FormatA(share)) + aaa.SendEmail(m.Options(web.LINK, share).Message, "", "", "") m.ProcessHold() } }