diff --git a/validate/common.go b/validate/common.go index c3ab423..f4abd33 100644 --- a/validate/common.go +++ b/validate/common.go @@ -7,6 +7,7 @@ import ( "gitea.pena/PenaSide/common/encrypt" "gitea.pena/PenaSide/common/minio_initialize" "gitea.pena/PenaSide/common/mongo" + "github.com/gofiber/fiber/v2" "github.com/minio/minio-go/v7" "github.com/pioz/faker" "go.mongodb.org/mongo-driver/bson" @@ -189,3 +190,20 @@ func ValidateS3(cfg ValidateS3Deps) error { return nil } + +func ValidateSmtp(apiKey string) error { + client := fiber.AcquireClient() + url := "https://api.smtp.bz/v1/user" + agent := client.Get(url) + agent.Set("Authorization", apiKey) + + code, _, errs := agent.Bytes() + if errs != nil { + return errs[0] + } + + if code != 200 { + return fmt.Errorf("invalid SMTP code: %d", code) + } + return nil +} diff --git a/validate/validate_test.go b/validate/validate_test.go index db59cf2..f9b2468 100644 --- a/validate/validate_test.go +++ b/validate/validate_test.go @@ -18,3 +18,8 @@ func TestValidateTG(t *testing.T) { err := ValidateTgToken("7127966184:AAG1steOCH4wDvHRe9QcsXJPS4dWRyRYsqg") assert.NoError(t, err) } + +func TestValidateSmtp(t *testing.T) { + err := ValidateSmtp("P0YsjUB137upXrr1NiJefHmXVKW1hmBWlpev") + assert.NoError(t, err) +}