修改账号注册方法,以及邮箱协议对接
This commit is contained in:
68
utils/firstmail.go
Normal file
68
utils/firstmail.go
Normal file
@@ -0,0 +1,68 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"go-account-register/config"
|
||||
"strings"
|
||||
|
||||
"github.com/PuerkitoBio/goquery"
|
||||
"github.com/go-resty/resty/v2"
|
||||
)
|
||||
|
||||
type Firstmail struct {
|
||||
}
|
||||
|
||||
type MailResponse struct {
|
||||
Message string `json:"message"`
|
||||
}
|
||||
|
||||
func (f *Firstmail) GetFirstmailMail(username, password string) (*MailResponse, error) {
|
||||
client := resty.New()
|
||||
appConfig, _ := config.LoadConfig()
|
||||
url := fmt.Sprintf("%s?username=%s&password=%s",
|
||||
appConfig.Firstmail.ApiUrl, username, password)
|
||||
|
||||
resp, err := client.R().
|
||||
SetHeader("accept", "application/json").
|
||||
SetHeader("X-API-KEY", appConfig.Firstmail.ApiToken).
|
||||
Get(url)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var data MailResponse
|
||||
if err := json.Unmarshal(resp.Body(), &data); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &data, nil
|
||||
}
|
||||
|
||||
func (f *Firstmail) GetMailCode(username, password string) string {
|
||||
res, err := f.GetFirstmailMail(username, password)
|
||||
if err != nil {
|
||||
return "0"
|
||||
}
|
||||
|
||||
htmlStr := res.Message
|
||||
fmt.Println(htmlStr)
|
||||
|
||||
doc, err := goquery.NewDocumentFromReader(strings.NewReader(htmlStr))
|
||||
if err != nil {
|
||||
return "0"
|
||||
}
|
||||
|
||||
code := ""
|
||||
doc.Find("td.h1.black").Each(func(i int, s *goquery.Selection) {
|
||||
if code == "" {
|
||||
code = strings.TrimSpace(s.Text())
|
||||
}
|
||||
})
|
||||
|
||||
if code == "" {
|
||||
return "0"
|
||||
}
|
||||
return code
|
||||
}
|
||||
Reference in New Issue
Block a user