Browse Source

添加邮件发送sdk

tags/v1.1.15
liaokaishan 2 years ago
parent
commit
cb0730aebd
3 changed files with 108 additions and 0 deletions
  1. +50
    -0
      services/mail/client.go
  2. +22
    -0
      services/mail/client_test.go
  3. +36
    -0
      services/mail/end_email.go

+ 50
- 0
services/mail/client.go View File

@@ -0,0 +1,50 @@
package mail

import (
"crypto/md5"
"fmt"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"time"
)

const (
VERSION = "2021-09-27"
)

var HOST requests.Host = requests.Host{
Default: "mail.gaore.com",
Func: func(s string) string {
var a = map[string]string{
requests.RELEASE: "mail.gaore.com",
requests.PRE: "mail.gaore.com",
requests.TEST: "mail.gaore.com",
}
return a[s]
},
}

type Client struct {
sdk.Client
}

func NewClient() (client *Client) {
client = &Client{}
client.InitWithAccessKey("", "", "")
return
}

func (c *Client) SendEmail(req *PostEmailRequest) (response *PostEmailResponse, err error) {

now := time.Now().Second()
key := "04573fc4c8e01999a0909ab9c00bca5a"
signstr := fmt.Sprintf("%d%s", now, key)
data := []byte(signstr)
has := md5.Sum(data)
sign := fmt.Sprintf("%x", has)
req.Time = now
req.Sign = sign
response = CreatePostEmailResponse()
err = c.DoAction(req, response)
return
}

+ 22
- 0
services/mail/client_test.go View File

@@ -0,0 +1,22 @@
package mail

import (
"fmt"
"testing"
"time"
)

func TestClient_GetUserInfo(t *testing.T) {
c := NewClient()
req := CreatePostEmailRequest()
req.Addresses = "3002467428@qq.com"
req.Body = "1111"
req.FromName = "213123121"
req.SetReadTimeout(60 * time.Second)
resp, err := c.SendEmail(req)

fmt.Println(req)
fmt.Println(resp.GetHttpContentString())
fmt.Println(err)

}

+ 36
- 0
services/mail/end_email.go View File

@@ -0,0 +1,36 @@
package mail

import (
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
)

type PostEmailRequest struct {
*requests.RpcRequest
Addresses string `position:"Body" field:"addresses" default:"" `
Subject string `position:"Body" field:"subject" default:"" `
Body string `position:"Body" field:"body" default:""`
FromName string `position:"Body" field:"fromName" default:""`
Time int `position:"Body" field:"time" default:""`
Sign string `position:"Body" field:"sign" default:""`
}

type PostEmailResponse struct {
*responses.BaseResponse
}

func CreatePostEmailRequest() (req *PostEmailRequest) {
req = &PostEmailRequest{
RpcRequest: &requests.RpcRequest{},
}
req.InitWithApiInfo(HOST, VERSION, "/email/post_email.php")
req.Method = requests.POST
return
}

func CreatePostEmailResponse() (response *PostEmailResponse) {
response = &PostEmailResponse{
BaseResponse: &responses.BaseResponse{},
}
return
}

Loading…
Cancel
Save