Towards first version.
This commit is contained in:
parent
b42a3a8e29
commit
9b10e41062
@ -196,6 +196,33 @@ func setAutoresponseViaEmail(recipient, sender, saslUser, clientIp string) error
|
|||||||
|
|
||||||
// Forward email using supplied arguments and stdin (email body)
|
// Forward email using supplied arguments and stdin (email body)
|
||||||
func forwardEmailAndAutoresponse(recipient, sender, saslUser, clientIp string, responseRate uint) error {
|
func forwardEmailAndAutoresponse(recipient, sender, saslUser, clientIp string, responseRate uint) error {
|
||||||
|
recipientResponsePath := filepath.Join(RESPONSE_DIR, recipient)
|
||||||
|
recipientSenderRateLog := filepath.Join(RATE_LOG_DIR, recipient, sender)
|
||||||
|
|
||||||
|
if fileExists(recipientResponsePath) {
|
||||||
|
// Check rate log
|
||||||
|
sendResponse := true
|
||||||
|
if fileExists(recipientSenderRateLog) {
|
||||||
|
curTime := time.Now()
|
||||||
|
st, err := os.Stat(recipientSenderRateLog)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
modTime := st.ModTime()
|
||||||
|
|
||||||
|
if int64(curTime.Sub(modTime)) / int64(time.Second) < int64(responseRate) {
|
||||||
|
sendResponse = false
|
||||||
|
syslg.Info(fmt.Sprintf("Autoresponse has already been sent from %v to %v within last %v seconds",
|
||||||
|
recipient, sender, responseRate))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// If sendResponse is true, then send response and touch rate log file
|
||||||
|
if sendResponse {
|
||||||
|
//fmt.Println("Sending response")
|
||||||
|
//!!!
|
||||||
|
}
|
||||||
|
}
|
||||||
//!!!
|
//!!!
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
@ -453,18 +480,14 @@ func main() {
|
|||||||
// mode=0 represents the actions that can not be executed from the command line
|
// mode=0 represents the actions that can not be executed from the command line
|
||||||
// mode=1 represents the actions that can be executed from the command line
|
// mode=1 represents the actions that can be executed from the command line
|
||||||
mode := 0
|
mode := 0
|
||||||
sendResponse := false
|
|
||||||
authenticated := false
|
authenticated := false
|
||||||
if *recipientPtr != "" && *senderPtr != "" {
|
|
||||||
sendResponse = true
|
|
||||||
}
|
|
||||||
if *saslUserPtr != "" {
|
if *saslUserPtr != "" {
|
||||||
authenticated = true
|
authenticated = true
|
||||||
}
|
}
|
||||||
if *enableAutoResponsePtr != "" || *disableAutoResponsePtr != "" || *enableExAutoResponsePtr != "" || *deleteAutoResponsePtr != "" {
|
if *enableAutoResponsePtr != "" || *disableAutoResponsePtr != "" || *enableExAutoResponsePtr != "" || *deleteAutoResponsePtr != "" {
|
||||||
mode = 1
|
mode = 1
|
||||||
}
|
}
|
||||||
DebugSyslogFmt("mode=%v, sendResponse=%v, authenticated=%v\n", mode, sendResponse, authenticated)
|
DebugSyslogFmt("mode=%v, authenticated=%v\n", mode, authenticated)
|
||||||
|
|
||||||
// Little more validation of recipient and sender
|
// Little more validation of recipient and sender
|
||||||
// Remove path ('/') from both recipient and sender
|
// Remove path ('/') from both recipient and sender
|
||||||
|
Reference in New Issue
Block a user