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
|
// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package utils
import (
"strings"
"testing"
)
func TestMailConnection(t *testing.T) {
LoadGlobalConfig("config.json")
if conn, err := connectToSMTPServer(Cfg); err != nil {
t.Log(err)
t.Fatal("Should connect to the STMP Server")
} else {
if _, err1 := newSMTPClient(conn, Cfg); err1 != nil {
t.Log(err)
t.Fatal("Should get new smtp client")
}
}
Cfg.EmailSettings.SMTPServer = "wrongServer"
Cfg.EmailSettings.SMTPPort = "553"
if _, err := connectToSMTPServer(Cfg); err == nil {
t.Log(err)
t.Fatal("Should not to the STMP Server")
}
}
func TestSendMail(t *testing.T) {
LoadGlobalConfig("config.json")
T = GetUserTranslations("en")
var emailTo string = "test@example.com"
var emailSubject string = "Testing this email"
var emailBody string = "This is a test from autobot"
//Delete all the messages before check the sample email
DeleteMailBox(emailTo)
if err := SendMail(emailTo, emailSubject, emailBody); err != nil {
t.Log(err)
t.Fatal("Should connect to the STMP Server")
} else {
//Check if the email was send to the rigth email address
var resultsMailbox JSONMessageHeaderInbucket
err := RetryInbucket(5, func() error {
var err error
resultsMailbox, err = GetMailBox(emailTo)
return err
})
if err != nil {
t.Log(err)
t.Log("No email was received, maybe due load on the server. Disabling this verification")
}
if err == nil && len(resultsMailbox) > 0 {
if !strings.ContainsAny(resultsMailbox[0].To[0], emailTo) {
t.Fatal("Wrong To recipient")
} else {
if resultsEmail, err := GetMessageFromMailbox(emailTo, resultsMailbox[0].ID); err == nil {
if !strings.Contains(resultsEmail.Body.Text, emailBody) {
t.Log(resultsEmail.Body.Text)
t.Fatal("Received message")
}
}
}
}
}
}
|