2023-12-29 11:30:20 +00:00
|
|
|
|
package client
|
|
|
|
|
|
2023-12-31 12:22:03 +00:00
|
|
|
|
import (
|
|
|
|
|
"fmt"
|
|
|
|
|
"net/smtp"
|
|
|
|
|
)
|
2023-12-29 11:30:20 +00:00
|
|
|
|
|
2023-12-31 12:22:03 +00:00
|
|
|
|
type RecoveryEmailSender struct {
|
|
|
|
|
SmtpHost string
|
|
|
|
|
SmtpPort string
|
|
|
|
|
Username string
|
|
|
|
|
Password string
|
|
|
|
|
ApiKey string
|
|
|
|
|
}
|
2023-12-29 11:30:20 +00:00
|
|
|
|
|
|
|
|
|
// SendRecoveryEmail отправляет email с подписью для восстановления доступа
|
|
|
|
|
func (r *RecoveryEmailSender) SendRecoveryEmail(email, signature string) error {
|
2023-12-31 12:22:03 +00:00
|
|
|
|
// прост как пример пока что
|
|
|
|
|
message := fmt.Sprintf("To: %s\r\n"+
|
|
|
|
|
"Subject: Восстановление доступа\r\n"+
|
|
|
|
|
"\r\n"+
|
|
|
|
|
"Чтобы восстановить доступ, пожалуйста, перейдите по ссылке ниже:\r\n"+
|
|
|
|
|
" https://hub.pena.digital/codeword/restore/%s\r\n", email, signature)
|
|
|
|
|
|
|
|
|
|
auth := smtp.PlainAuth("", r.Username, r.Password, r.SmtpHost)
|
|
|
|
|
|
|
|
|
|
err := smtp.SendMail(r.SmtpHost+":"+r.SmtpPort, auth, r.Username, []string{email}, []byte(message))
|
|
|
|
|
if err != nil {
|
|
|
|
|
fmt.Printf("Ошибка при отправке письма: %s\n", err)
|
|
|
|
|
return err
|
|
|
|
|
}
|
2023-12-29 11:30:20 +00:00
|
|
|
|
|
2023-12-31 12:22:03 +00:00
|
|
|
|
fmt.Printf("Письмо для восстановления доступа отправлено на: %s\n", email)
|
2023-12-29 11:30:20 +00:00
|
|
|
|
|
|
|
|
|
return nil
|
|
|
|
|
}
|