void Enqueue(MimeMessageContainer container) { if (_emailNotificationsEnabled) { Consumer.Enqueue(container); } else { // TODO: store the e-mail? } }
async Task <bool> LogEmailFailure(string descr, MimeMessageContainer container, bool save = false) { try { var msg = container.Message; var msgId = msg.MessageId; if (!await LogContains(msgId)) { var obj = new OutgoingMessage { MessageId = msgId, Subject = msg.Subject ?? string.Empty, Body = ((TextPart)msg.Body).Text ?? string.Empty, From = string.Join(",", msg.From.Select(addr => addr.ToString())), To = string.Join(",", msg.To.Select(addr => addr.ToString())), }; _sysRepo.Add(new SysEventLog { MessageId = msgId, UserId = container.UserId, Description = descr, EventType = SysEventType.EmailSendFailed.ToString(), ObjectState = SerializeObject(obj), }); if (save) { await _sysRepo.SaveChangesAsync(CancellationTokenSource.Token); } return(true); } } catch (Exception ex) { Logger.LogError(ex, $"Error in {nameof(LogEmailFailure)} while adding e-mail log."); } return(false); }
bool FindContainer(string messageId, out MimeMessageContainer container) { container = _workingSet.FirstOrDefault(c => c.MessageId == messageId); return(container != null); }