@@ -22,14 +22,14 @@ type Client interface {
2222
2323// SendBulkMail sends a batch of email messages to all the specified recipients
2424// All the calls to send mail happen in parallel, with their responses returned on the provided channel
25- func SendBulkMail (toList []server.EmailRecipient , from server.EmailSender , cc []server.EmailRecipient , bcc []server.EmailRecipient , message server.MailMessage , client Client , responseChannel chan BulkSendAttempt ) {
25+ func SendBulkMail (toList []server.EmailRecipient , from server.EmailSender , cc []server.EmailRecipient , bcc []server.EmailRecipient , headers map [ string ] string , message server.MailMessage , client Client , responseChannel chan BulkSendAttempt ) {
2626 wg := sync.WaitGroup {}
2727 wg .Add (len (toList ))
2828
2929 // Create goroutines for each send
3030 for _ , to := range toList {
3131 go func (to server.EmailRecipient ) {
32- response , err := SendIndividualMail ([]server.EmailRecipient {to }, from , cc , bcc , message , client )
32+ response , err := SendIndividualMail ([]server.EmailRecipient {to }, from , cc , bcc , headers , message , client )
3333 responseChannel <- BulkSendAttempt {to .Address , response , err }
3434 wg .Done ()
3535 }(to )
@@ -42,7 +42,7 @@ func SendBulkMail(toList []server.EmailRecipient, from server.EmailSender, cc []
4242}
4343
4444// SendIndividualMail sends an email message
45- func SendIndividualMail (to []server.EmailRecipient , from server.EmailSender , cc []server.EmailRecipient , bcc []server.EmailRecipient , message server.MailMessage , client Client ) (* rest.Response , error ) {
45+ func SendIndividualMail (to []server.EmailRecipient , from server.EmailSender , cc []server.EmailRecipient , bcc []server.EmailRecipient , headers map [ string ] string , message server.MailMessage , client Client ) (* rest.Response , error ) {
4646 sendMessage := sendgridMail .NewV3Mail ()
4747
4848 sendMessage .SetFrom (sendgridMail .NewEmail (from .Name , from .Address ))
@@ -72,6 +72,12 @@ func SendIndividualMail(to []server.EmailRecipient, from server.EmailSender, cc
7272 }
7373 sendMessage .AddPersonalizations (personalization )
7474
75+ if len (headers ) > 0 {
76+ for key , value := range headers {
77+ sendMessage .SetHeader (key , value )
78+ }
79+ }
80+
7581 return client .Send (sendMessage )
7682}
7783
0 commit comments