37 lines
1.1 KiB
Go
37 lines
1.1 KiB
Go
package client
|
||
|
||
import (
|
||
"fmt"
|
||
"net/smtp"
|
||
)
|
||
|
||
type RecoveryEmailSender struct {
|
||
SmtpHost string
|
||
SmtpPort string
|
||
Username string
|
||
Password string
|
||
ApiKey string
|
||
}
|
||
|
||
// SendRecoveryEmail отправляет email с подписью для восстановления доступа
|
||
func (r *RecoveryEmailSender) SendRecoveryEmail(email, signature string) error {
|
||
// прост как пример пока что
|
||
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
|
||
}
|
||
|
||
fmt.Printf("Письмо для восстановления доступа отправлено на: %s\n", email)
|
||
|
||
return nil
|
||
}
|