notify

package
v1.69.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 18, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package notify 提供统一通知中心:多渠道(短信/邮件/站内信等)发送抽象。 业务只依赖统一入口,渠道通过 Register 插拔;与 framework/sms、framework/mail 组合使用。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Content

type Content struct {
	Title    string            // 标题(邮件/站内信)
	Body     string            // 正文内容
	Template string            // 渠道模板 ID
	Params   map[string]string // 模板参数
}

Content 是通知内容。 Template 为渠道模板 ID(如短信签名模板、邮件模板),Body 为直接内容。 两者至少提供一个;实现按渠道能力选择模板渲染或直发。

type MailAdapter added in v1.69.0

type MailAdapter struct {
	// contains filtered or unexported fields
}

MailAdapter 把 framework/mail 客户端包装为 notify.Sender(渠道 "email")。 content.Title 为邮件主题,content.Body 为 HTML 正文。

func NewMailAdapter added in v1.69.0

func NewMailAdapter(client *mail.Client) *MailAdapter

NewMailAdapter 创建邮件适配器。

func (*MailAdapter) Channel added in v1.69.0

func (a *MailAdapter) Channel() string

Channel 返回渠道标识。

func (*MailAdapter) Send added in v1.69.0

func (a *MailAdapter) Send(ctx context.Context, target string, content Content) error

Send 发送邮件;target 为收件邮箱(单个)。

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

Manager 是多渠道通知管理器。

func NewManager

func NewManager() *Manager

NewManager 创建通知管理器。

func (*Manager) Channels

func (m *Manager) Channels() []string

Channels 返回已注册渠道列表(排序稳定)。

func (*Manager) Register

func (m *Manager) Register(sender Sender) error

Register 注册发送渠道;同渠道重复注册返回错误。

func (*Manager) Send

func (m *Manager) Send(ctx context.Context, channel, target string, content Content) error

Send 通过指定渠道同步发送;渠道未注册或发送失败返回错误。

func (*Manager) SendAll

func (m *Manager) SendAll(ctx context.Context, target string, content Content, channels ...string) error

SendAll 并发发送多个渠道;任一失败都会返回聚合错误(成功渠道不受影响)。

func (*Manager) Sender

func (m *Manager) Sender(channel string) (Sender, bool)

Sender 按渠道查找发送器。

type SMSAdapter added in v1.69.0

type SMSAdapter struct {
	// contains filtered or unexported fields
}

SMSAdapter 把 framework/sms 客户端包装为 notify.Sender(渠道 "sms")。 content.Template 覆盖默认模板 Code;content.Params 作为模板变量。

func NewSMSAdapter added in v1.69.0

func NewSMSAdapter(client *sms.Client, signName, templateCode string) *SMSAdapter

NewSMSAdapter 创建短信适配器。 signName/templateCode 为默认值,单次发送可通过 content.Template 覆盖模板。

func (*SMSAdapter) Channel added in v1.69.0

func (a *SMSAdapter) Channel() string

Channel 返回渠道标识。

func (*SMSAdapter) Send added in v1.69.0

func (a *SMSAdapter) Send(ctx context.Context, target string, content Content) error

Send 发送短信;target 为接收号码。

type Sender

type Sender interface {
	// Channel 返回渠道唯一标识(如 "sms"、"email")。
	Channel() string
	// Send 发送单条通知;失败返回错误(不得包含敏感信息)。
	Send(ctx context.Context, target string, content Content) error
}

Sender 是发送渠道抽象(短信/邮件/钉钉/企业微信等)。 实现必须线程安全、支持 Context 取消。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL