mirror of https://github.com/gophish/gophish
Adding better error handling for SMTP server
JSBeautify sending_profiles.jspull/284/head
parent
8211116375
commit
1933eb7ff1
|
@ -416,7 +416,7 @@ func API_SMTP_Id(w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
err = s.Validate()
|
||||
if err != nil {
|
||||
JSONResponse(w, models.Response{Success: false, Message: "Invalid attributes given"}, http.StatusBadRequest)
|
||||
JSONResponse(w, models.Response{Success: false, Message: err.Error()}, http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
s.ModifiedDate = time.Now()
|
||||
|
|
|
@ -3,6 +3,8 @@ package models
|
|||
import (
|
||||
"errors"
|
||||
"net/mail"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
|
@ -28,6 +30,9 @@ var ErrFromAddressNotSpecified = errors.New("No From Address specified")
|
|||
// in the SMTP configuration
|
||||
var ErrHostNotSpecified = errors.New("No SMTP Host specified")
|
||||
|
||||
// ErrInvalidHost indicates that the SMTP server string is invalid
|
||||
var ErrInvalidHost = errors.New("Invalid SMTP server address")
|
||||
|
||||
// TableName specifies the database tablename for Gorm to use
|
||||
func (s SMTP) TableName() string {
|
||||
return "smtp"
|
||||
|
@ -42,6 +47,20 @@ func (s *SMTP) Validate() error {
|
|||
return ErrHostNotSpecified
|
||||
}
|
||||
_, err := mail.ParseAddress(s.FromAddress)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
// Make sure addr is in host:port format
|
||||
hp := strings.Split(s.Host, ":")
|
||||
if len(hp) > 2 {
|
||||
return ErrInvalidHost
|
||||
} else if len(hp) < 2 {
|
||||
hp = append(hp, "25")
|
||||
}
|
||||
_, err = strconv.Atoi(hp[1])
|
||||
if err != nil {
|
||||
return ErrInvalidHost
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
|
|
|
@ -51,6 +51,9 @@ function save(idx) {
|
|||
load()
|
||||
dismiss()
|
||||
})
|
||||
.error(function(data) {
|
||||
modalError(data.responseJSON.message)
|
||||
})
|
||||
} else {
|
||||
// Submit the profile
|
||||
api.SMTP.post(profile)
|
||||
|
|
Loading…
Reference in New Issue