valid email (#278)

This commit is contained in:
Dominic Wong
2021-11-17 16:53:45 +00:00
committed by GitHub
parent da0d6a4e97
commit ab4c8ac3f6
2 changed files with 19 additions and 5 deletions

View File

@@ -7,6 +7,7 @@ import (
"fmt"
"io/ioutil"
"net/http"
"regexp"
"github.com/micro/micro/v3/service"
"github.com/micro/micro/v3/service/client"
@@ -59,12 +60,24 @@ type Email struct {
spamSvc spampb.SpamService
}
func (e *Email) Send(ctx context.Context, request *pb.SendRequest, response *pb.SendResponse) error {
if len(request.From) == 0 {
return errors.BadRequest("email.send.validation", "Missing from address")
// validEmail does very light validation
func validEmail(email string) bool {
if len(email) == 0 {
return false
}
if len(request.To) == 0 {
return errors.BadRequest("email.send.validation", "Missing to address")
m, err := regexp.MatchString("^\\S+@\\S+$", email)
if err != nil {
return false
}
return m
}
func (e *Email) Send(ctx context.Context, request *pb.SendRequest, response *pb.SendResponse) error {
if !validEmail(request.From) {
return errors.BadRequest("email.send.validation", "Invalid from address")
}
if !validEmail(request.To) {
return errors.BadRequest("email.send.validation", "Invalid to address")
}
if len(request.Subject) == 0 {
return errors.BadRequest("email.send.validation", "Missing subject")

1
go.mod
View File

@@ -36,6 +36,7 @@ require (
github.com/micro/micro-go v0.0.0-20211101221015-79ab982f8163
github.com/micro/micro/v3 v3.7.1-0.20211111170433-1ebb8328e280
github.com/miekg/dns v1.1.31 // indirect
github.com/onsi/gomega v1.10.5
github.com/oschwald/geoip2-golang v1.5.0
github.com/patrickmn/go-cache v2.1.0+incompatible
github.com/paulmach/go.geo v0.0.0-20180829195134-22b514266d33