У меня есть приложение MVC, и я пытаюсь отправить электронное письмо с помощью Hangfire и Postal. Письмо должно быть отправлено после регистрации. Регистрация работает правильно, но задание, которое я запускаю, остается в очереди, и я не получаю никаких писем. Итак, в моем контроллере MVC у меня есть следующий код:
public async Task Register (модель RegisterViewModel) { //правильно регистрируем пользователя //Я отправляю письмо BackgroundJob.Enqueue(() => NotifyRegistration(user.Id, user.UserName, user.Email) ); ... } [Автоматическая повторная попытка (Попытки = 5)] общедоступная асинхронная задача NotifyRegistration (строка userId, строка имени пользователя, строка электронной почты) { //Я вычисляю callbackUrl varviewsPath = Path.GetFullPath(HostingEnvironment.MapPath(@"~/Views/Emails")); вар двигатели = новый ViewEngineCollection (); engine.Add(новый FileSystemRazorViewEngine(viewsPath)); вар emailService = новый EmailService(движки); var emailToSend = новый NewRegisteredUserEmail { Кому = электронная почта, Имя пользователя = имя пользователя, CallbackUrl = callbackUrl }; электронная почтаService.Send(emailToSend); } Я не могу отладить метод NotifyRegistration. Я не знаю, почему. Я использую Postal, поэтому EmailService — не моя реализация. Вот как я настроил службу smtp:
Если я запущу панель Hangfire, я увижу запросы

Но больше ничего не произошло. Что мне не хватает, чтобы отправить электронное письмо?
Спасибо
ОБНОВЛЕНИЕ В файле start.cs я написал следующее:
var options = новые SqlServerStorageOptions { QueuePollInterval = TimeSpan.FromSeconds(1) }; GlobalConfiguration.Configuration .UseSqlServerStorage("DbConnectionString", параметры) .UseFilter(новый LogEmailFailureAttribute()); app.UseHangfireDashboard(); app.UseHangfireServer(); ОБНОВЛЕНИЕ 2 Я преобразовал свою регистрацию NotifyRegistration следующим образом:
[AutomaticRetry(Попытки = 5)] общедоступная асинхронная задача NotifyRegistration (строка userId, строка имени пользователя, строка электронной почты, EmailService emailService) { //Я вычисляю callbackUrl var emailToSend = новый NewRegisteredUserEmail { Кому = электронная почта, Имя пользователя = имя пользователя, CallbackUrl = callbackUrl }; электронная почтаService.Send(emailToSend); }