57 lines
1.1 KiB
Go
57 lines
1.1 KiB
Go
package senders
|
|
|
|
import (
|
|
"encoding/json"
|
|
"io/ioutil"
|
|
"penahub.gitlab.yandexcloud.net/pena-services/email-tester/client"
|
|
"penahub.gitlab.yandexcloud.net/pena-services/email-tester/model"
|
|
)
|
|
|
|
func ToClientTesting(config model.Config) error {
|
|
smtpClient := client.NewSmtpClient(client.Deps{
|
|
SmtpApiUrl: config.ApiURL,
|
|
SmtpSender: config.Sender,
|
|
ApiKey: config.ApiKey,
|
|
})
|
|
|
|
templateData, err := parseTemplateData(config.PathToTemplateData)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
body, err := loadTemplate(config.PathToToClientTemplate)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = smtpClient.SendMailWithAttachment(config.To, config.Subject, body, templateData, nil)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func parseTemplateData(filePath string) (client.TemplateData, error) {
|
|
var data client.TemplateData
|
|
|
|
file, err := ioutil.ReadFile(filePath)
|
|
if err != nil {
|
|
return data, err
|
|
}
|
|
|
|
err = json.Unmarshal(file, &data)
|
|
if err != nil {
|
|
return data, err
|
|
}
|
|
|
|
return data, nil
|
|
}
|
|
|
|
func loadTemplate(filePath string) (string, error) {
|
|
fileContent, err := ioutil.ReadFile(filePath)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return string(fileContent), nil
|
|
}
|