+
+
+ {error && (
+
+ {error}
+
+ )}
+
+
+ SMTP-сервер
+
+
+ setForm({ ...form, smtpHost: e.target.value })}
+ placeholder="smtp.gmail.com" />
+
+
+ setForm({ ...form, smtpPort: e.target.value })} placeholder="587" />
+
+
+
+
+
+
+
+
+ setForm({ ...form, smtpUsername: e.target.value })}
+ placeholder="user@gmail.com" autoComplete="off" />
+
+
+ setForm({ ...form, newSmtpPassword: e.target.value })}
+ placeholder={data?.hasSmtpPassword ? '•••••••• (без изменений)' : 'Введите пароль'}
+ autoComplete="new-password" />
+
+ {data?.hasSmtpPassword
+ ? 'Сохранён, шифрован DataProtection. Оставьте поле пустым — пароль не изменится.'
+ : 'Пароль не сохранён.'}
+
+
+
+
+
+
+ setForm({ ...form, fromEmail: e.target.value })}
+ placeholder="noreply@food-market.kz" />
+
+
+ setForm({ ...form, fromName: e.target.value })}
+ placeholder="Food Market" />
+
+
+
+
+
+ Сохранение
+
+
+
+
+ {savedHint && (
+
+ Сохранено
+
+ )}
+
+ {!requiredOk && (
+ Минимально нужны: SmtpHost и FromEmail. Без них отправка невозможна.
+ )}
+
+
+
+ Тестовая отправка
+
+ Письмо отправляется немедленно через текущие сохранённые настройки. Удобно проверить что
+ креды Gmail/Yandex/Mailgun валидны и что firewall пропускает SMTP-порт.
+
+
+
+ setTestTo(e.target.value)} placeholder="you@example.com" />
+
+
+ setTestSubject(e.target.value)} />
+
+
+
+
+
+ {testResult && (
+
+ {testResult.ok ?
:
}
+
{testResult.message}
+
+ )}
+
+
+ {/* Hidden Checkbox import используется чтобы линтер не ругался — оставляем
+ чтобы при будущем расширении (например «Использовать SMTP-настройки
+ организации вместо платформенных») было где включить тоггл. */}
+
{}} />
+