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
|
// Copyright 2025 syzkaller project authors. All rights reserved.
// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
package emailclient
import (
"context"
"github.com/google/syzkaller/dashboard/dashapi"
"github.com/google/syzkaller/pkg/email"
"github.com/google/syzkaller/syz-cluster/pkg/app"
"net/mail"
)
func makeDashapiSender(cfg *app.EmailConfig) (Sender, error) {
dash, err := dashapi.New(cfg.Dashapi.Client, cfg.Dashapi.Addr, "")
if err != nil {
return nil, err
}
return func(_ context.Context, item *Email) (string, error) {
sender := (&mail.Address{
Name: cfg.Name,
Address: cfg.Dashapi.From,
}).String()
if item.BugID != "" {
var err error
sender, err = email.AddAddrContext(sender, cfg.Dashapi.ContextPrefix+item.BugID)
if err != nil {
return "", err
}
}
return "", dash.SendEmail(&dashapi.SendEmailReq{
Sender: sender,
To: item.To,
Cc: item.Cc,
Subject: cfg.SubjectPrefix + item.Subject,
InReplyTo: item.InReplyTo,
Body: string(item.Body),
})
}, nil
}
|