fix: 增加对转发邮箱和手机号码为空的错误处理

This commit is contained in:
TsMask
2025-05-23 14:32:58 +08:00
parent 2f65fb08cf
commit 5c450e5142
2 changed files with 24 additions and 8 deletions

View File

@@ -85,6 +85,9 @@ func AlarmEmailForward(alarmData *Alarm) error {
// return err
// }
emails := strings.Split(config.GetYamlConfig().Alarm.EmailForward.EmailList, ",")
if len(emails) == 0 {
return fmt.Errorf("not found forward email list")
}
m.SetHeader("To", emails...) // 收件人,可以多个收件人,但必须使用相同的 SMTP 连接
//m.SetHeader("To", strings.Join(*emails, " ")) // 收件人,可以多个收件人,但必须使用相同的 SMTP 连接
//m.SetHeader("To", "zhangshuzhong@agrandtech.com", "simonzhangsz@outlook.com") // 收件人,可以多个收件人,但必须使用相同的 SMTP 连接

View File

@@ -52,13 +52,18 @@ func AlarmForwardBySMS(alarmData *Alarm) (string, error) {
if err != nil {
log.Error("Failed to XormGetAlarmForward:", err)
return "", err
} else if toUsers == nil {
}
if toUsers == nil {
err := errors.New("not found forward phone number")
log.Error(err)
return "", err
}
userList := strings.Join(*toUsers, ",")
if len(userList) == 0 {
err := errors.New("not found forward phone number")
log.Error(err)
return "", err
}
// 短信相关参数
params := url.Values{}
params.Set("PhoneNumbers", userList)
@@ -110,6 +115,11 @@ func AlarmForwardBySMPP(alarmData *Alarm) (string, error) {
return "", err
}
userList := smsForward.MobileList
if len(userList) == 0 {
err := errors.New("not found forward phone number")
log.Error(err)
return "", err
}
auth := gosmpp.Auth{
SMSC: smsForward.SMSCAddr,
SystemID: smsForward.SystemID,
@@ -140,19 +150,22 @@ func AlarmForwardBySMPP(alarmData *Alarm) (string, error) {
}, -1)
if err != nil {
log.Error("Failed to create SMPP new session:", err)
return userList, err
return "", err
}
// defer func() {
// if err := trans.Close(); err != nil {
// log.Error(err)
// }
// }()
defer func() {
if err := trans.Close(); err != nil {
log.Error(err)
}
}()
message := "Alarm Notification: " + alarmData.AlarmTitle +
" from " + alarmData.NeType + "_" + alarmData.NeId +
" at " + alarmData.EventTime
users := strings.Split(userList, ",")
for _, user := range users {
if user == "" {
continue
}
sm, err := newSubmitSM(user, message)
if err != nil {
log.Errorf("Failed to newSubmitSM %s short message: %v", user, err)