github.com/google/syzkaller@v0.0.0-20251211124644-a066d2bc4b02/syz-cluster/pkg/emailclient/dashapi_sender.go (about) 1 // Copyright 2025 syzkaller project authors. All rights reserved. 2 // Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. 3 4 package emailclient 5 6 import ( 7 "context" 8 "github.com/google/syzkaller/dashboard/dashapi" 9 "github.com/google/syzkaller/pkg/email" 10 "github.com/google/syzkaller/syz-cluster/pkg/app" 11 "net/mail" 12 ) 13 14 func makeDashapiSender(cfg *app.EmailConfig) (Sender, error) { 15 dash, err := dashapi.New(cfg.Dashapi.Client, cfg.Dashapi.Addr, "") 16 if err != nil { 17 return nil, err 18 } 19 return func(_ context.Context, item *Email) (string, error) { 20 sender := (&mail.Address{ 21 Name: cfg.Name, 22 Address: cfg.Dashapi.From, 23 }).String() 24 if item.BugID != "" { 25 var err error 26 sender, err = email.AddAddrContext(sender, cfg.Dashapi.ContextPrefix+item.BugID) 27 if err != nil { 28 return "", err 29 } 30 } 31 return "", dash.SendEmail(&dashapi.SendEmailReq{ 32 Sender: sender, 33 To: item.To, 34 Cc: item.Cc, 35 Subject: cfg.SubjectPrefix + item.Subject, 36 InReplyTo: item.InReplyTo, 37 Body: string(item.Body), 38 }) 39 }, nil 40 }