XMail

package
v1.2.8 Latest Latest
Warning

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

Go to latest
Published: Jan 30, 2021 License: MIT Imports: 5 Imported by: 0

README

Gomail Starter

基于 gopkg.in/gomail.v2 包

Documentation

Documentation https://godoc.org/gopkg.in/gomail.v2

Starter Usage
goinfras.RegisterStarter(XMail.NewStarter())

XMail Config Setting
NoAuth   bool   // 使用本地SMTP服务器发送电子邮件。
NoSmtp   bool   // 使用API​​或后缀发送电子邮件。
Server   string // 使用外部SMTP服务器
Port     int    // 外部SMTP服务端口
User     string // 你的三方邮箱地址
Password string // 你的邮箱密码
XMail Usage

1.使用外部API发送邮件

err := XCommonMail().SendMailNoSMTP("from", "subject", "body", "bodyType", []string{"to1","to2"},func(from string, to []string, msg io.WriterTo) error {
    fmt.Println("From:", from)
    fmt.Println("To:", to)
    fmt.Println("Msg:", msg)

    // TODO 通过外部API发送邮件

    return nil
})


2.使用SMTP服务器,发送简单邮件,测试前请先设置默认配置信息


// 发送
err := XCommonMail().SendSimpleMail(
    "from",
    "ccAddress",
    "ccName",
    "subject",
    "body",
    "bodyType",
    "attach",
    []string{"to1","to2"},
)
// ...

3.使用SMTP服务器,群发邮件,测试前请先设置默认配置信息

receivers := []NewsLetterReceiver{
    {
        Name:    "",
        Address: "",
    },
    {
        Name:    "",
        Address: "",
    },
}

err := XCommonMail().SendNewsLetter(receivers, "frome", "subject", "body", "bodyType")


4.使用SMTP服务器,使用通道在窗口时间内批量发送邮件

msgCh := make(chan *gomail.Message)
defer func() {
    close(msgCh)
}()
err := XCommonMail().SendBatchMails(msgCh, 10)
So(err, ShouldBeNil)

// TODO Send Message to msgCh
msg1 := gomail.NewMessage()
msg1.SetHeader("From", "")
msg1.SetAddressHeader("To", "", "")
msg1.SetHeader("Subject", "Newsletter #1")
msg1.SetBody("text/plain", "")
msgCh <- msg1

// continue...


Documentation

Index

Constants

View Source
const (
	BodyTypePlain = "text/plain" // 纯文本
	BodyTypeHTML  = "text/html"  // HTML格式
)

Variables

This section is empty.

Functions

func CreateDefaultAuthManager

func CreateDefaultAuthManager(config *Config)

创建一个默认配置的Manager

func CreateDefaultManager

func CreateDefaultManager(config *Config)

创建一个默认配置的Manager

func NewAuthDialer

func NewAuthDialer(host, user, password string, port int) *gomail.Dialer

获取一个鉴权的smtp服务拨号器

func NewNoAuthDialer

func NewNoAuthDialer(host string, port int) *gomail.Dialer

获取一个无鉴权的smtp服务拨号器

func NewStarter

func NewStarter() *starter

func XDialer

func XDialer() *gomail.Dialer

资源组件实例调用

func XFDialer

func XFDialer(f func(c *gomail.Dialer) error) error

资源组件闭包执行

Types

type CommonMail

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

func XCommonMail

func XCommonMail() *CommonMail

邮件组件的通用操作实例

func (*CommonMail) SendBatchMails

func (c *CommonMail) SendBatchMails(msgCh <-chan *gomail.Message, duration time.Duration) error

*

  • @Description: 使用SMTP服务器,使用通道在窗口时间内批量发送邮件
  • @receiver c
  • @param msgCh 发送邮件信息的通道
  • @param duration 发送超时时间
  • @return error

func (*CommonMail) SendMailNoSMTP

func (c *CommonMail) SendMailNoSMTP(subject, body, bodyType string, to []string, sendFunc gomail.SendFunc) error

*

  • @Description: 非本地邮件服务器,通过API发送邮件
  • @receiver c
  • @param from 发送方
  • @param subject 邮件主题
  • @param body 邮件主体
  • @param bodyType 邮件主体格式:BodyTypePlain(文本格式)或BodyTypeHTML(HTML格式)
  • @param to 接收方
  • @param sendFunc 发送处理函数,闭包执行非本服务器的API发送邮件
  • @return error

func (*CommonMail) SendNewsLetter

func (c *CommonMail) SendNewsLetter(receivers []NewsLetterReceiver, subject, body, bodyType string) error

*

  • @Description: 使用SMTP服务器批量发送邮件
  • @receiver c
  • @param receivers 接收者
  • @param from 发送方
  • @param subject 邮件主题
  • @param body 邮件主体
  • @param bodyType 邮件主体格式:BodyTypePlain(文本格式)或BodyTypeHTML(HTML格式)
  • @return error

func (*CommonMail) SendSimpleMail

func (c *CommonMail) SendSimpleMail(subject, body, bodyType, attach string, to []string) error

*

  • @Description: 使用SMTP服务器发送简单邮件
  • @receiver c
  • @param from 发送方
  • @param to 接收方(可多个)
  • @param ccAddress 抄送地址
  • @param ccName 抄送名称
  • @param subject 邮件主题
  • @param body 邮件主体
  • @param bodyType 邮件主体格式:BodyTypePlain(文本格式)或BodyTypeHTML(HTML格式)
  • @param attach 附件文件资源地址
  • @return error

type Config

type Config struct {
	NoAuth   bool   // 使用本地SMTP服务器发送电子邮件。
	NoSmtp   bool   // 使用API​​或后缀发送电子邮件。
	Server   string // 使用外部SMTP服务器
	Port     int    // 外部SMTP服务端口
	User     string // 你的三方邮箱地址
	Password string // 你的邮箱密码
}

func DefaultConfig

func DefaultConfig() *Config

type NewsLetterReceiver

type NewsLetterReceiver struct {
	Name    string
	Address string
}

Jump to

Keyboard shortcuts

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