42 |
|
String levelName = cp.getProperty(_name, "Alerter.EMail.level"); |
43 |
|
int level = StringUtils.getStringPos(levelName, Alert.alertLevels); |
44 |
|
// only send if it's equal (or above) our level |
45 |
< |
if(alert.getLevel() >= level) { |
45 |
> |
if(((alert.getLevel() == 0) && (alert.getLastLevel() >= level)) || (alert.getLevel() >= level)) { |
46 |
|
String alertType = Alert.alertLevels[alert.getLevel()]; |
47 |
|
String thresholdType = Alert.thresholdLevels[alert.getThreshold()]; |
48 |
|
// sort out the subject |
71 |
|
// set our sender |
72 |
|
smtp.setSender(cp.getProperty(_name, "Alerter.EMail.sender")); |
73 |
|
|
74 |
< |
// set the to list |
75 |
< |
StringTokenizer st = new StringTokenizer(cp.getProperty(_name, "Alerter.EMail.destList"), ";"); |
74 |
> |
// get the default destination list |
75 |
> |
String destList = cp.getProperty(_name, "Alerter.EMail.defaultDestList"); |
76 |
> |
// check if the source we're alerting about has a specific destination |
77 |
> |
String sourceDestList = cp.getProperty("Host."+alert.getSource(), "Alerter.EMail.destList"); |
78 |
> |
if(sourceDestList != null) { |
79 |
> |
// if there is a source destination list, use it |
80 |
> |
destList = sourceDestList; |
81 |
> |
} |
82 |
> |
|
83 |
> |
// set the to: list |
84 |
> |
StringTokenizer st = new StringTokenizer(destList, ";"); |
85 |
|
while (st.hasMoreTokens()) { |
86 |
|
smtp.setTo(st.nextToken()); |
87 |
|
} |
95 |
|
out.println(message); |
96 |
|
smtp.sendMessage(); |
97 |
|
smtp.close(); |
98 |
< |
_logger.write(toString(), Logger.DEBUG, "Sending " + _name + " at "+ levelName + " level"); |
98 |
> |
_logger.write(toString(), Logger.DEBUG, "Sending " + _name + " at "+ alertType + " level"); |
99 |
|
} |
100 |
|
catch(IOException e) { |
101 |
|
_logger.write(toString(), Logger.ERROR, "Error whilst sending message: "+e); |