/
send_spmigration_email.go
82 lines (67 loc) · 2.12 KB
/
send_spmigration_email.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
package email
import (
"encoding/json"
"fmt"
"io/ioutil"
"net/smtp"
)
func (s *SPMigration_Email_Body) Send_SPmigration_Email() {
auth = smtp.PlainAuth("", "", "", "127.0.0.1")
r := NewRequest(s.Recipients, "SPMigration Notification - Info", "")
hostname, err := get_hostname_fqdn()
if err != nil {
logger.Warningln(err.Error())
}
s.Host = hostname
s.Port = 12345
//err := r.ParseTemplate("template.html", result)
template_file := fmt.Sprintf("%s/template_spmigration_info.html", s.Template_dir)
if err := r.ParseTemplate(template_file, s); err == nil {
ok, err1 := r.SendEmail()
if err1 != nil {
logger.Warningln(err1.Error())
}
logger.Infof("SPMigration Info Email sent. %v", ok)
} else {
logger.Warningln(err.Error())
}
}
func (s *SPMigration_Email_Body) Send_SPmigration_Results() {
auth = smtp.PlainAuth("", "", "", "127.0.0.1")
r := NewRequest(s.Recipients, "SPMigration Notification - Result", "")
hostname, err := get_hostname_fqdn()
if err != nil {
logger.Warningln(err.Error())
}
s.Host = hostname
s.Port = 12345
/* s.SPmigration_Tracking_File = "/var/log/sumapatch/spmigration_t7udp_20230911074532.yaml"
s.Template_dir = "/srv/jobmonitor/" */
//err := r.ParseTemplate("template.html", result)
logger.Infof("Reading JSON file for Email Notification: %s\n", s.SPmigration_Tracking_File)
targets, err := readJSONFile(s.SPmigration_Tracking_File)
if err != nil {
logger.Warningln(err.Error())
}
template_file := fmt.Sprintf("%s/template_spmigration_results.html", s.Template_dir)
if err := r.ParseTemplate(template_file, targets); err == nil {
ok, err1 := r.SendEmail()
if err1 != nil {
logger.Warningln(err1.Error())
}
logger.Infof("SPMigration Results Email sent. %v", ok)
} else {
logger.Warningln(err.Error())
}
}
func readJSONFile(filename string) (*Target_Minions, error) {
content, err := ioutil.ReadFile(filename)
if err != nil {
return nil, fmt.Errorf("failed to read JSON file: %s", err)
}
var targets Target_Minions
if err := json.Unmarshal(content, &targets); err != nil {
return nil, fmt.Errorf("failed to unmarshal JSON: %s", err)
}
return &targets, nil
}