sendcloud

package module
v1.0.9 Latest Latest
Warning

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

Go to latest
Published: Oct 14, 2020 License: Apache-2.0 Imports: 12 Imported by: 0

README

sendcloud

目前已实现以下功能:

  • 1、模板管理(添加、删除、更新、获取)
  • 2、地址列表管理(添加、删除、更新、获取)
  • 3、地址列表成员管理(添加、删除、更新、获取)
  • 4、邮件发送(模板发送、地址列表发送、附件支持)

使用方法如下:

设置 API 信息:

var c = sendcloud.New("api_user", "api_key")

发送邮件:

var to = sendcloud.NewTo()
to.Add("917996695@qq.com", nil)
var result, err = c.SendTemplateMail(to, "invoke name", "from mail", "from name", "replay to email address", "subject", nil)

Documentation

Index

Constants

View Source
const (
	TEMPLATE_TYPE_OF_ALL     = -1
	TEMPLATE_TYPE_OF_TRIGGER = 0
	TEMPLATE_TYPE_OF_BATCH   = 1
)
View Source
const (
	TEMPLATE_STATE_OF_ALL        = -3
	TEMPLATE_STATE_OF_NOT_REVIEW = -2 // 未提交审核
	TEMPLATE_STATE_OF_NOT_PASS   = -1 // 审核不通过
	TEMPLATE_STATE_OF_REVIEWING  = 0  // 待审核
	TEMPLATE_STATE_OF_PASSED     = 1  // 审核通过
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AddAddressListRsp

type AddAddressListRsp struct {
	Result     bool   `json:"result"`
	StatusCode int    `json:"statusCode"`
	Message    string `json:"message"`
	Info       struct {
		Data *Address `json:"data"`
	} `json:"info"`
}

--------------------------------------------------------------------------------

type AddAddressMemberRsp

type AddAddressMemberRsp struct {
	Result     bool   `json:"result"`
	StatusCode int    `json:"statusCode"`
	Message    string `json:"message"`
	Info       struct {
		Count int `json:"count"`
	} `json:"info"`
}

--------------------------------------------------------------------------------

type AddLabelRsp

type AddLabelRsp struct {
	Result     bool   `json:"result"`
	StatusCode int    `json:"statusCode"`
	Message    string `json:"message"`
	Info       struct {
		Data *Label `json:"data"`
	} `json:"info"`
}

--------------------------------------------------------------------------------

type AddTemplateRsp

type AddTemplateRsp struct {
	Result     bool   `json:"result"`
	StatusCode int    `json:"statusCode"`
	Message    string `json:"message"`
	Info       struct {
		Data *Template `json:"data"`
	} `json:"info"`
}

--------------------------------------------------------------------------------

type Address

type Address struct {
	GMTCreated  string `json:"gmtCreated"`
	GMTtUpdated string `json:"gmtUpdated"`
	Address     string `json:"address"`
	MemberCount int    `json:"memberCount"`
	Description string `json:"description"`
	Name        string `json:"name"`
	ListType    int    `json:"listType"`
}

type AddressListRsp

type AddressListRsp struct {
	Result     bool   `json:"result"`
	StatusCode int    `json:"statusCode"`
	Message    string `json:"message"`
	Info       struct {
		DataList []*Address `json:"dataList"`
		Total    int        `json:"total"`
		Count    int        `json:"count"`
	} `json:"info"`
}

--------------------------------------------------------------------------------

type AddressMemberListRsp

type AddressMemberListRsp struct {
	Result     bool   `json:"result"`
	StatusCode int    `json:"statusCode"`
	Message    string `json:"message"`
	Info       struct {
		DataList []*Member `json:"dataList"`
		Total    int       `json:"total"`
		Count    int       `json:"count"`
	} `json:"info"`
}

--------------------------------------------------------------------------------

type Client

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

func New

func New(apiUser, apiKey string) *Client

func (*Client) AddAddressList

func (this *Client) AddAddressList(address, name, desc string) (result *AddAddressListRsp, err error)

AddAddressList 添加地址列表 address string 是 别称地址, 使用该别称地址进行调用, 格式为xxx@maillist.sendcloud.org name string 是 列表名称 desc string 否 对列表的描述信息 listType int 否 列表的类型. 0: 普通地址列表, 1: 高级地址列表(需要开通权限才能使用). 默认为0

func (*Client) AddAddressMember

func (this *Client) AddAddressMember(address string, members, names []string) (result *AddAddressMemberRsp, err error)

AddAddressMember 向地址列表添加成员 address string 是 地址列表的别称地址 members list 是 需要添加成员的地址, 多个地址用 ; 分隔 names list 否 地址成员姓名, 多个地址用 ; 分隔

func (*Client) AddLabel

func (this *Client) AddLabel(labelName string) (result *AddLabelRsp, err error)

AddLabel 添加模板 labelName string 是 邮件标签名称

func (*Client) AddTemplate

func (this *Client) AddTemplate(invokeName, name, html, subject string, templateType int, isSubmitAudit bool) (result *AddTemplateRsp, err error)

AddTemplate 添加模板 invokeName string 是 邮件模板调用名称 name string 是 邮件模板名称 html string 是 html格式内容 subject string 是 模板标题 templateType int 是 邮件模板类型: 0(触发), 1(批量) isSubmitAudit int 否 是否提交审核: 0(不提交审核), 1(提交审核). 默认为 1

func (*Client) DeleteAddressList

func (this *Client) DeleteAddressList(address string) (result *DeleteAddressListRsp, err error)

DeleteAddressList 删除地址列表 address string 是 别称地址, 使用该别称地址进行调用, 格式为xxx@maillist.sendcloud.org

func (*Client) DeleteAddressMember

func (this *Client) DeleteAddressMember(address string, members []string) (result *DeleteAddressMemberRsp, err error)

DeleteAddressMember 从邮件列表删除成员 address string 是 地址列表的别称地址 members list 是 需要删除成员的地址, 多个地址用 ; 分隔

func (*Client) DeleteLabel

func (this *Client) DeleteLabel(labelId int) (result *DeleteLabelRsp, err error)

DeleteLabel 删除模板 labelId int 是 需要删除的标签ID

func (*Client) DeleteTemplate

func (this *Client) DeleteTemplate(invokeName string) (result *DeleteTemplateRsp, err error)

DeleteTemplate 删除模板 invokeName string 是 邮件模板调用名称

func (*Client) GetAddressList

func (this *Client) GetAddressList(address string, start, limit int) (result *AddressListRsp, err error)

GetAddressList 查询地址列表(批量查询) address list 否 别名地址的列表, 多个用 ; 分隔 start int 否 查询起始位置, 取值区间 [0-], 默认为 0 limit int 否 查询个数, 取值区间 [0-100], 默认为 100

func (*Client) GetAddressMemberList

func (this *Client) GetAddressMemberList(address string, start, limit int) (result *AddressMemberListRsp, err error)

GetAddressMemberList 获取邮件列表的成员列表 address string 是 地址列表的别称地址 start int 否 查询起始位置, 取值区间 [0-], 默认为 0 limit int 否 查询个数, 取值区间 [0-100], 默认为 100

func (*Client) GetEmailStatusList

func (this *Client) GetEmailStatusList(days int, startDate, endDate string, start, limit int) (result *EmailStatusListRsp, err error)

GetEmailStatusList 投递回应 目前只提供了几个常用参数,其它参数信息请参考 http://www.sendcloud.net/doc/email_v2/deliver_response/#_1 start int 否 查询起始位置, 取值区间 [0-], 默认为 0 limit int 否 查询个数, 取值区间 [0-100], 默认为 100

func (*Client) GetLabel

func (this *Client) GetLabel(labelId int) (result *GetLabelRso, err error)

GetLabel 查询邮件标签详细信息 labelId string 是 邮件标签Id

func (*Client) GetLabelList

func (this *Client) GetLabelList(query string, start, limit int) (result *LabelListRsp, err error)

GetLabelList 查询(批量查询)邮件标签 query string 否 模糊查询的关键词 start int 否 查询起始位置, 取值区间 [0-], 默认为 0 limit int 否 查询个数, 取值区间 [0-100], 默认为 100

func (*Client) GetOpenAndClickList

func (this *Client) GetOpenAndClickList(days int, startDate, endDate string, start, limit int) (result *OpenAndClickRsp, err error)

GetOpenAndClickList 获取打开点击数据 目前只提供了几个常用参数,其它参数信息请参考 http://www.sendcloud.net/doc/email_v2/open_or_click/#_1

func (*Client) GetTaskInfo

func (this *Client) GetTaskInfo(mailListTaskId int) (result *GetTaskInfoRsp, err error)

GetTaskInfo 获取邮件地址列表发送任务信息 mailListTaskId int 是 返回的mailListTaskId

func (*Client) GetTemplate

func (this *Client) GetTemplate(invokeName string) (result *GetTemplateRso, err error)

GetTemplate 查询模板的详细信息 invokeName string 是 邮件模板调用名称

func (*Client) GetTemplateList

func (this *Client) GetTemplateList(invokeName string, templateType, templateStat, start, limit int) (result *TemplateListRsp, err error)

func (*Client) GetUserInfo

func (this *Client) GetUserInfo() (result *UserInfoRsp, err error)

GetUserInfo 查询当前用户的相关信息

func (*Client) SendTemplateMail

func (this *Client) SendTemplateMail(to *To, invokeName, from, fromName, replyTo, subject string, filename []string, labelId int) (result *SendTemplateRsp, err error)

SendMailWithTemplate 模板发送 invokeName string 是 邮件模板调用名称 from string 是 发件人地址 fromName string 否 发件人名称 replyTo string 否 设置用户默认的回复邮件地址. 如果 replyTo 没有或者为空, 则默认的回复邮件地址为 from subject string * 邮件标题 filename []string 否 邮件附件 labelId int 否 邮件标签ID

func (*Client) SendTemplateMailToAddressList

func (this *Client) SendTemplateMailToAddressList(addressList, invokeName, from, fromName, replyTo, subject string, filename []string) (result *SendTemplateRsp, err error)

-------------------------------------------------------------------------------- SendTemplateMailWithAddressList 向邮件地址列表发送邮件 addressList string 是 邮件地址列表 invokeName string 是 邮件模板调用名称 from string 是 发件人地址 fromName string 否 发件人名称 replyTo string 否 设置用户默认的回复邮件地址. 如果 replyTo 没有或者为空, 则默认的回复邮件地址为 from subject string * 邮件标题

func (*Client) UpdateAddressList

func (this *Client) UpdateAddressList(address, newAddress, name, desc string) (result *UpdateAddressListRsp, err error)

UpdateAddressList 更新地址列表 address string 是 别称地址, 使用该别称地址进行调用, 格式为xxx@maillist.sendcloud.org newAddress string 否 修改后的别称地址 name string 否 修改后的列表名称 desc string 否 修改后的列表描述信息

func (*Client) UpdateAddressMember

func (this *Client) UpdateAddressMember(address string, members, names []string) (result *UpdateAddressMemberRsp, err error)

UpdateAddressMember 修改邮件列表的成员 address string 是 地址列表的别称地址 members list 是 需要添加成员的地址, 多个地址用 ; 分隔 names list 否 地址成员姓名, 多个地址用 ; 分隔

func (*Client) UpdateLabel

func (this *Client) UpdateLabel(labelId int, labelName string) (result *UpdateLabelRsp, err error)

UpdateTemplate 修改模板信息 labelId int 是 需要修改的标签ID labelName string 是 需要修改的标签名称

func (*Client) UpdateTemplate

func (this *Client) UpdateTemplate(invokeName, name, html, subject string, templateType int, isSubmitAudit bool) (result *UpdateTemplateRsp, err error)

UpdateTemplate 修改模板信息 invokeName string 是 邮件模板调用名称 name string 否 邮件模板名称 html string 否 html格式内容 subject string 否 模板标题 templateType int 否 邮件模板类型: 0(触发), 1(批量) isSubmitAudit int 否 是否提交审核: 0(不提交审核), 1(提交审核). 默认为 1

type DeleteAddressListRsp

type DeleteAddressListRsp struct {
	Result     bool   `json:"result"`
	StatusCode int    `json:"statusCode"`
	Message    string `json:"message"`
	Info       struct {
		Count int `json:"count"`
	} `json:"info"`
}

--------------------------------------------------------------------------------

type DeleteAddressMemberRsp

type DeleteAddressMemberRsp struct {
	Result     bool   `json:"result"`
	StatusCode int    `json:"statusCode"`
	Message    string `json:"message"`
	Info       struct {
		Count int `json:"count"`
	} `json:"info"`
}

--------------------------------------------------------------------------------

type DeleteLabelRsp

type DeleteLabelRsp struct {
	Result     bool   `json:"result"`
	StatusCode int    `json:"statusCode"`
	Message    string `json:"message"`
	Info       struct {
		Count int `json:"count"`
	} `json:"info"`
}

--------------------------------------------------------------------------------

type DeleteTemplateRsp

type DeleteTemplateRsp struct {
	Result     bool   `json:"result"`
	StatusCode int    `json:"statusCode"`
	Message    string `json:"message"`
	Info       struct {
		Count int `json:"count"`
	} `json:"info"`
}

--------------------------------------------------------------------------------

type EmailStatusListRsp

type EmailStatusListRsp struct {
	Result     bool   `json:"result"`
	StatusCode int    `json:"statusCode"`
	Message    string `json:"message"`
	Info       struct {
		Total      int       `json:"total,string"`
		VoListSize int       `json:"voListSize"`
		VoList     []*VoInfo `json:"voList"`
	} `json:"info"`
}

--------------------------------------------------------------------------------

type GetLabelRso

type GetLabelRso struct {
	Result     bool   `json:"result"`
	StatusCode int    `json:"statusCode"`
	Message    string `json:"message"`
	Info       struct {
		Data *Label `json:"data"`
	} `json:"info"`
}

--------------------------------------------------------------------------------

type GetTaskInfoRsp

type GetTaskInfoRsp struct {
	Result     bool   `json:"result"`
	StatusCode int    `json:"statusCode"`
	Message    string `json:"message"`
	Info       struct {
		Data *TaskInfo `json:"data"`
	} `json:"info"`
}

--------------------------------------------------------------------------------

type GetTemplateRso

type GetTemplateRso struct {
	Result     bool   `json:"result"`
	StatusCode int    `json:"statusCode"`
	Message    string `json:"message"`
	Info       struct {
		Data *Template `json:"data"`
	} `json:"info"`
}

--------------------------------------------------------------------------------

type Label

type Label struct {
	GMTCreated  string `json:"gmtCreated"`
	GMTtUpdated string `json:"gmtUpdated"`
	LabelId     int    `json:"labelId"`
	LabelName   string `json:"labelName"`
}

type LabelListRsp

type LabelListRsp struct {
	Result     bool   `json:"result"`
	StatusCode int    `json:"statusCode"`
	Message    string `json:"message"`
	Info       struct {
		DataList []*Label `json:"dataList"`
		Total    int      `json:"total"`
		Count    int      `json:"count"`
	} `json:"info"`
}

--------------------------------------------------------------------------------

type Member

type Member struct {
	GMTCreated  string `json:"gmtCreated"`
	GMTtUpdated string `json:"gmtUpdated"`
	Member      string `json:"member"`
	Name        string `json:"name"`
	Address     string `json:"address"`
}

type OpenAndClickInfo

type OpenAndClickInfo struct {
	TrackType int    `json:"trackType"`
	APIUser   string `json:"apiUser"`
	Email     string `json:"email"`
	URL       string `json:"url"`
	CurrTime  string `json:"currTime"`
}

--------------------------------------------------------------------------------

type OpenAndClickRsp

type OpenAndClickRsp struct {
	Result     bool   `json:"result"`
	StatusCode int    `json:"statusCode"`
	Message    string `json:"message"`
	Info       struct {
		Total    int                 `json:"total"`
		Count    int                 `json:"count"`
		DataList []*OpenAndClickInfo `json:"dataList"`
	} `json:"info"`
}

type SendTemplateRsp

type SendTemplateRsp struct {
	Result     bool   `json:"result"`
	StatusCode int    `json:"statusCode"`
	Message    string `json:"message"`
	Info       struct {
		EmailIdList    []string `json:"emailIdList"`
		MailListTaskId []int    `json:"maillistTaskId"`
	} `json:"info"`
}

--------------------------------------------------------------------------------

type TaskInfo

type TaskInfo struct {
	GMTCreated     string `json:"gmtCreated"`
	GMTtUpdated    string `json:"gmtUpdated"`
	MailListTaskId int    `json:"maillistTaskId"`
	ApiUser        string `json:"apiUser"`
	AddressList    string `json:"addressList"`
	MemberCount    int    `json:"memberCount"`
	Status         string `json:"status"`
}

type Template

type Template struct {
	GMTCreated     string `json:"gmtCreated"`
	GMTtUpdated    string `json:"gmtUpdated"`
	Name           string `json:"name"`
	InvokeName     string `json:"invokeName"`
	TemplateType   int    `json:"templateType"`
	HTML           string `json:"html"`
	Subject        string `json:"subject"`
	ContentSummary string `json:"contentSummary"`
}

type TemplateListRsp

type TemplateListRsp struct {
	Result     bool   `json:"result"`
	StatusCode int    `json:"statusCode"`
	Message    string `json:"message"`
	Info       struct {
		DataList []*Template `json:"dataList"`
		Total    int         `json:"total"`
		Count    int         `json:"count"`
	} `json:"info"`
}

--------------------------------------------------------------------------------

type To

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

func NewTo

func NewTo() *To

func (*To) Add

func (this *To) Add(to string, param map[string]string)

func (*To) Del

func (this *To) Del(to string)

func (*To) Len

func (this *To) Len() int

type UpdateAddressListRsp

type UpdateAddressListRsp struct {
	Result     bool   `json:"result"`
	StatusCode int    `json:"statusCode"`
	Message    string `json:"message"`
	Info       struct {
		Count int `json:"count"`
	} `json:"info"`
}

--------------------------------------------------------------------------------

type UpdateAddressMemberRsp

type UpdateAddressMemberRsp struct {
	Result     bool   `json:"result"`
	StatusCode int    `json:"statusCode"`
	Message    string `json:"message"`
	Info       struct {
		Count int `json:"count"`
	} `json:"info"`
}

--------------------------------------------------------------------------------

type UpdateLabelRsp

type UpdateLabelRsp struct {
	Result     bool   `json:"result"`
	StatusCode int    `json:"statusCode"`
	Message    string `json:"message"`
	Info       struct {
		Count int `json:"count"`
	} `json:"info"`
}

--------------------------------------------------------------------------------

type UpdateTemplateRsp

type UpdateTemplateRsp struct {
	Result     bool   `json:"result"`
	StatusCode int    `json:"statusCode"`
	Message    string `json:"message"`
	Info       struct {
		Count int `json:"count"`
	} `json:"info"`
}

--------------------------------------------------------------------------------

type UserInfo

type UserInfo struct {
	AvailableBalance   float64 `json:"avaliableBalance"`
	Balance            float64 `json:"balance"`
	Phone              string  `json:"phone"`
	Quota              int     `json:"quota"`
	RegTime            string  `json:"regTime"`
	Email              string  `json:"email"`
	Reputation         float64 `json:"reputation"`
	WebsiteAuthStatus  bool    `json:"websiteAuthStatus"`
	AccountType        string  `json:"accountType"`
	UserName           string  `json:"userName"`
	BusinessAuthStatus bool    `json:"businessAuthStatus"`
	TodayUsedQuota     int     `json:"todayUsedQuota"`
}

type UserInfoRsp

type UserInfoRsp struct {
	Result     bool      `json:"result"`
	StatusCode int       `json:"statusCode"`
	Message    string    `json:"message"`
	Info       *UserInfo `json:"info"`
}

--------------------------------------------------------------------------------

type VoInfo

type VoInfo struct {
	Status        string `json:"status"`
	EmailId       string `json:"emailId"`
	ApiUser       string `json:"apiUser"`
	Recipients    string `json:"recipients"`
	RequestTime   string `json:"requestTime"`
	ModifiedTime  string `json:"modifiedTime"`
	SendLog       string `json:"sendLog"`
	TaskName      string `json:"taskName"`
	MailingStatus string `json:"mailingStatus"`
	SubStatus     int    `json:"subStatus"`
	SoftStatus    string `json:"softStatus"`
	TimeStr       string `json:"timeStr"`
	Event         string `json:"event"`
	Receiver      string `json:"receiver"`
	Message       string `json:"message"`
	Email         string `json:"email"`
	Name          string `json:"name"`
	Phone         string `json:"phone"`
	SubStatusDesc string `json:"subStatusDesc"`
}

Jump to

Keyboard shortcuts

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