diff --git a/features/fm/email.go b/features/fm/email.go index bb00e902..e11a6339 100644 --- a/features/fm/email.go +++ b/features/fm/email.go @@ -7,6 +7,7 @@ import ( "be.ems/lib/config" "be.ems/lib/log" + systemService "be.ems/src/modules/system/service" "gopkg.in/gomail.v2" ) @@ -14,16 +15,35 @@ import ( func AlarmEmailForward(alarmData *Alarm) error { log.Info("AlarmEmailForward processing... ") + alarmStatus := "Clear" + if alarmData.AlarmStatus == 1 { + alarmStatus = "Active" + } + severity := origSeverityValue(alarmData.OrigSeverity) + dictAlarmSeverity := systemService.NewSysDictData.FindByType("active_alarm_severity") + for _, v := range dictAlarmSeverity { + if v.DataValue == severity { + severity = v.DataLabel + } + } + subjectTime := fmt.Sprintf("%s-%s-%s", severity, alarmData.NeName, alarmData.AlarmTitle) message := fmt.Sprintf(`

Alarm information

Sequence: %d

-

NE name: %s

+

NE Name: %s

Title: %s

Severity: %s

Event Time: %s

-

Alarm Status: %d

+

Alarm Status: %s

Automatic sent by OMC, please do not reply!

- `, alarmData.AlarmSeq, alarmData.NeName, alarmData.AlarmTitle, alarmData.OrigSeverity, alarmData.EventTime, alarmData.AlarmStatus) + `, + alarmData.AlarmSeq, + alarmData.NeName, + alarmData.AlarmTitle, + severity, + alarmData.EventTime, + alarmStatus, + ) // message := fmt.Sprintf(` // Alarm information @@ -70,7 +90,7 @@ func AlarmEmailForward(alarmData *Alarm) error { //m.SetHeader("To", "zhangshuzhong@agrandtech.com", "simonzhangsz@outlook.com") // 收件人,可以多个收件人,但必须使用相同的 SMTP 连接 //m.SetHeader("Cc", "******@qq.com") // 抄送,可以多个 //m.SetHeader("Bcc", "******@qq.com") // 暗送,可以多个 - m.SetHeader("Subject", "Alarm from OMC!") // 邮件主题 + m.SetHeader("Subject", subjectTime) // 邮件主题 // text/html 的意思是将文件的 content-type 设置为 text/html 的形式,浏览器在获取到这种文件时会自动调用html的解析器对文件进行相应的处理。 // 可以通过 text/html 处理文本格式进行特殊处理,如换行、缩进、加粗等等