Skip to content

Import path: gitlab.soludian.com/soludian/fountain/libs/noti/fmail

fmail

go
import "gitlab.soludian.com/soludian/fountain/libs/noti/fmail"

Index

Constants

go
const (
    KDefaultSMTPPort = 465
)

go
const KPackageName = "fmail"

Variables

go
var GetFountainInstance = Lib.GetFountainInstance

go
var GetFountainManager = Lib.GetFountainManager

Sử dụng khi config instance ở dạng key:value; Nếu config instance ở dạng key:array thì sử dụng hàm InstallFountainInstances Nếu config ở dạng key:array thì sẽ chỉ install config phần tử đầu tiên mà thôi

Install with config format <key>:<value>; eg: fmail:<value>

Usage:

config.yaml:

	fmail:
	  name: default_name
	  ...

	code.go

	fmail.InstallFountainInstance()

 fmail.WithConfigKey("fmail").InstallFountainInstance()
go
var InstallFountainInstance = Lib.InstallFountainInstance

Sử dụng khi config instance ở dạng key:array<value>; Sẽ luôn cố gắng khởi tạo kể cả khi config ở dạng key:value

Install with config format <key>:array<value>; eg: fmail:array<value>

Usage:

config.yaml:

fmail:
  - name: default_name
    ...

code.go

fmail.InstallFountainInstances()

fmail.WithConfigKey("fmail").InstallFountainInstances()
go
var InstallFountainInstances = Lib.InstallFountainInstances

Truy cập thẳng tới bộ quản lý thư viện

go
var Lib = lib_3rd.NewLib(newClient, lib_3rd.WithDefaultConfigFunc[config, Client](DefaultConfig))

go
var WithConfigKey = Lib.WithConfigKey

func CreateSesSmtpPassword

go
func CreateSesSmtpPassword(region, secret string) string

func WithAccessKey

go
func WithAccessKey(accessKeyID, secretAccessKey string) lib_3rd.Option[config]

func WithConfig

go
func WithConfig(conf *config) lib_3rd.Option[config]

WithConfig Required. Set config

func WithEnvironment

go
func WithEnvironment(env string) lib_3rd.Option[config]

func WithHost

go
func WithHost(host string) lib_3rd.Option[config]

func WithLogger

go
func WithLogger(logger ...flog.FlogInf) lib_3rd.Option[config]

func WithName

go
func WithName(name string) lib_3rd.Option[config]

func WithPort

go
func WithPort(port int) lib_3rd.Option[config]

func WithRegion

go
func WithRegion(region string) lib_3rd.Option[config]

func WithSESAccessKey

go
func WithSESAccessKey(accessKeyID, secretAccessKey string) lib_3rd.Option[config]

type Client

go
type Client struct {
    // contains filtered or unexported fields
}

func (*Client) SendEmail

go
func (c *Client) SendEmail(m *Message) error

type ISendEmailAvailable

go
type ISendEmailAvailable interface {
    Send(m *Message) error
}

type Message

go
type Message struct {
    Subject                 string            `json:"subject,omitempty"`
    From                    string            `json:"from,omitempty"`
    To                      []Receivers       `json:"to,omitempty"`
    CC                      []Receivers       `json:"cc,omitempty"`
    BCC                     []Receivers       `json:"bcc,omitempty"`
    Content                 string            `json:"content,omitempty"` // Plain-text alternative tường minh; nếu rỗng và DisableAutoPlainText=false sẽ tự generate từ HTML
    TemplateFile            string            `json:"template_file,omitempty"`
    Data                    map[string]any    `json:"data,omitempty"`
    Attachment              []string          `json:"attachment,omitempty"`
    Tags                    map[string]string `json:"tags,omitempty"`                      // Sử dụng cho tracking email, ví dụ: {"campaign": "summer_sale", "user_id": "12345"}
    ConfigurationSetName    string            `json:"configuration_set_name,omitempty"`    // Sử dụng cho SES để chỉ định configuration set, nếu có
    DisableConfigurationSet bool              `json:"disable_configuration_set,omitempty"` // Sử dụng để tắt configuration set, nếu true sẽ không gắn configuration set vào email
    DisableAutoPlainText    bool              `json:"disable_auto_plain_text,omitempty"`   // Tắt cơ chế auto-generate plain text fallback từ HTML content
}

func NewMessage

go
func NewMessage() *Message

func (*Message) MoreAttachment

go
func (m *Message) MoreAttachment(path ...string) *Message

func (*Message) MoreBCC

go
func (m *Message) MoreBCC(bcc ...Receivers) *Message

func (*Message) MoreBCCAddr

go
func (m *Message) MoreBCCAddr(cc ...string) *Message

func (*Message) MoreCC

go
func (m *Message) MoreCC(cc ...Receivers) *Message

func (*Message) MoreCCAddr

go
func (m *Message) MoreCCAddr(cc ...string) *Message

func (*Message) MoreTags

go
func (m *Message) MoreTags(tags map[string]string) *Message

Gộp thêm tags vào message, nếu đã tồn tại tags thì sẽ gộp thêm, nếu có key trùng thì sẽ ghi đè bằng value mới

func (*Message) MoreTo

go
func (m *Message) MoreTo(to ...Receivers) *Message

func (*Message) MoreToAddr

go
func (m *Message) MoreToAddr(to ...string) *Message

func (*Message) WithAttachment

go
func (m *Message) WithAttachment(path ...string) *Message

func (*Message) WithBCC

go
func (m *Message) WithBCC(bcc ...Receivers) *Message

func (*Message) WithBCCAddr

go
func (m *Message) WithBCCAddr(cc ...string) *Message

func (*Message) WithCC

go
func (m *Message) WithCC(cc ...Receivers) *Message

func (*Message) WithCCAddr

go
func (m *Message) WithCCAddr(cc ...string) *Message

func (*Message) WithContent

go
func (m *Message) WithContent(content string) *Message

func (*Message) WithFrom

go
func (m *Message) WithFrom(from string) *Message

func (*Message) WithSubject

go
func (m *Message) WithSubject(subject string) *Message

func (*Message) WithTags

go
func (m *Message) WithTags(tags map[string]string) *Message

func (*Message) WithTemplateFile

go
func (m *Message) WithTemplateFile(templateFile string, data map[string]any) *Message

func (*Message) WithTo

go
func (m *Message) WithTo(to ...Receivers) *Message

func (*Message) WithToAddr

go
func (m *Message) WithToAddr(to ...string) *Message

func (*Message) WithoutAutoPlainText

go
func (m *Message) WithoutAutoPlainText() *Message

WithoutAutoPlainText tắt cơ chế auto-generate plain text fallback từ HTML. Khi gọi, email chỉ có text/html part (không có text/plain alternative) nếu PlainText cũng không được set.

type Receivers

go
type Receivers struct {
    Address string `json:"address"`
    Name    string `json:"name"`
}

Generated by gomarkdoc