public void Start() { try { logger.Info("Iniciando Email Manager..."); if (ConfigurationManager.AppSettings.AllKeys.Contains("SmtpServer")) { _server = ConfigurationManager.AppSettings["SmtpServer"].ToString(); } else { throw new Exception("Parametro SmtpServer nao encontrado!!!"); } if (ConfigurationManager.AppSettings.AllKeys.Contains("SmtpPort")) { _port = Convert.ToInt32(ConfigurationManager.AppSettings["SmtpPort"].ToString()); } else { throw new Exception("Parametro SmtpPort nao encontrado!!!"); } if (ConfigurationManager.AppSettings.AllKeys.Contains("EmailFrom")) { _emailFrom = ConfigurationManager.AppSettings["EmailFrom"].ToString(); } if (ConfigurationManager.AppSettings.AllKeys.Contains("EmailAlert")) { _emailAlert = ConfigurationManager.AppSettings["EmailAlert"].ToString(); } if (ConfigurationManager.AppSettings.AllKeys.Contains("EmailTo")) { _emailTo = ConfigurationManager.AppSettings["EmailTo"].ToString(); } if (ConfigurationManager.AppSettings.AllKeys.Contains("EmailCc")) { _emailCc = ConfigurationManager.AppSettings["EmailCc"].ToString(); } if (ConfigurationManager.AppSettings.AllKeys.Contains("EmailCco")) { _emailCco = ConfigurationManager.AppSettings["EmailCco"].ToString(); } _db = new DbEmail(); _cfg = new ConfigMailInfo(); _cfg.SmtpHost = _server; _cfg.SmtpPort = _port.ToString(); _cqEmail = new ConcurrentQueue <TOEmail>(); _thEmail = new Thread(new ThreadStart(this._queueEmail)); _thEmail.Start(); _isRunning = true; } catch (Exception ex) { logger.Error("Problemas no start do Email Manager: " + ex.Message, ex); } }
private async Task SendMail(MailMessage mailMessage) { var mailMessageString = JsonConvert.SerializeObject(mailMessage); var dbEmail = new DbEmail { Message = mailMessageString, Status = "PROCESSING", RetryCount = 0 }; _context.DbEmails.Add(dbEmail); await _context.SaveChangesAsync(); var result = await _emailClient.SendEmail(mailMessage); if (result.Sent) { dbEmail.UpdatedAt = DateTime.UtcNow; dbEmail.Status = "SENT"; } else { dbEmail.UpdatedAt = DateTime.UtcNow; dbEmail.Status = "FAILED_REQUEUED"; dbEmail.RetryCount += 1; } _context.DbEmails.Update(dbEmail); await _context.SaveChangesAsync(); }
public void TestSendMailSendsAnEmail() { DbEmail testMail = new DbEmail(); testMail.Sender = "*****@*****.**"; testMail.Recipient = "*****@*****.**"; testMail.Subject = "hi hinnah"; testMail.Body = "test"; SendComInteropEmail email = new SendComInteropEmail(); Assert.IsTrue(email.SendMail(testMail)); }
public DbEmail Convert(CsvEmail csvEmail, int id) { var dbEmail = new DbEmail { Id = id, SentDate = csvEmail.SentDateTime.Date, SentDateTime = csvEmail.SentDateTime, RecipientAddress = RecipientAddressCleaner(csvEmail.RecipientAddress), SenderAddress = csvEmail.SenderAddress, SenderDomain = SenderDomain(csvEmail.SenderAddress) }; return(dbEmail); }
public DbEmail Execute(Guid sessionID, string recipientEmail, DbJob job) { // Get userEmail string qry = "SELECT email FROM FDMUSER JOIN SESSIONS ON FDMUSER.user_id = SESSIONS.user_id WHERE session_guid = '" + sessionID.ToString() + "'"; ReadOneCommand cmd = new ReadOneCommand(); string userEmail = cmd.Execute(qry); DbEmail email = new DbEmail(); email.Sender = userEmail; email.Recipient = recipientEmail; email.Subject = "Application for " + job.Title + " at " + job.Location; email.Body = "Hi "; return email; }
public DbEmail Execute(Guid sessionID, string recipientEmail, DbJob job) { // Get userEmail string qry = "SELECT email FROM FDMUSER JOIN SESSIONS ON FDMUSER.user_id = SESSIONS.user_id WHERE session_guid = '" + sessionID.ToString() + "'"; ReadOneCommand cmd = new ReadOneCommand(); string userEmail = cmd.Execute(qry); DbEmail email = new DbEmail(); email.Sender = userEmail; email.Recipient = recipientEmail; email.Subject = "Application for " + job.Title + " at " + job.Location; email.Body = "Hi "; return(email); }
/// <summary> /// Метод для добавления email. /// </summary> /// <param name="id">Id авторизованного пользователь, инициировавшего смену</param> /// <param name="email">Email, который необходимо добавить.</param> /// <returns>Id добавленного e-mail</returns> public int AddEmail(string id, Email email) { if (_unitOfWork.EmailRepository.Get() .FirstOrDefault(c => c.Name == email.Name) != null) { throw new ValidationException(Resources.EmailDuplicate); } if (!Regex.IsMatch(email.Name, _pattern, RegexOptions.IgnoreCase)) // TODO: change to attribute { throw new ValidationException(Resources.WrongEmailFormat); } var emails = new DbEmail() { Name = email.Name, DbUserProfileId = id }; // TODO: to map _unitOfWork.EmailRepository.Insert(emails); _unitOfWork.SaveChanges(); return(emails.Id); }
public void ProcessEmailPath(string path, FileWatcherConfigItem cfg) { try { StringBuilder sbAlert = new StringBuilder(); _composeMessageAlert(ref sbAlert, "Diretorio a processar: " + path, 1); // Buscando os emails Dictionary <int, List <string> > dicEmails = new Dictionary <int, List <string> >(); logger.Info("Buscando Emails: " + cfg.Exchange); switch (cfg.Type) { case TypeWatcher.BMF: dicEmails = new DbEmailOracle().BuscarClienteBmf(); break; case TypeWatcher.BOVESPA: dicEmails = new DbEmailOracle().BuscarClienteBovespa(); break; case TypeWatcher.POSICAO_BMF: dicEmails = new DbEmail().BuscarPosicaoClienteEmail(); break; } if (dicEmails == null || dicEmails.Count == 0) { logger.Error("Problemas na consulta dos emails dos clientes..."); return; } logger.InfoFormat("Fim busca Emails. Tipo [{0}]. Accounts: [{1}] ", cfg.NameType, dicEmails.Count); // Ler o diretorio com os arquivos if (Directory.Exists(path)) { string[] arqNames = Directory.GetFiles(path); logger.Info("Numero de Arquivos: " + arqNames.Length); foreach (string arqName in arqNames) { int idClient = this._extractIdCliente(arqName); if (idClient == 0) { _composeMessageAlert(ref sbAlert, "ERRO. Não foi possivel extrair IdCliente", 2); logger.Error("ERRO. Impossivel buscar cliente"); continue; } string emailTo = string.Empty; if (!this._getEmail(idClient, dicEmails, ref emailTo)) { _composeMessageAlert(ref sbAlert, "Email inexistente para cliente :" + idClient, 2); } else { string msg = string.Format("FileName: [{0}] IdCliente: [{1}] Email: [{2}]", arqName, idClient.ToString("D8"), emailTo); _composeMessageAlert(ref sbAlert, msg, 1); TOEmail toMsg = _composeEmailMsg(_emailFrom, emailTo, arqName, cfg.Exchange, idClient.ToString(), cfg, dicEmails); this.AddEmail(toMsg); } } } else { _composeMessageAlert(ref sbAlert, "Diretorio nao existe!!", 2); } // Gerando mensagem de processamento TOEmail toEmailAlert = this._composeEmailAlert(_emailFrom, _emailAlert, _emailCc, _emailCco, string.Format("{0} - Processamento de Arquivo", cfg.NameType)); toEmailAlert.Msg.Body = sbAlert.ToString(); this.AddEmail(toEmailAlert); } catch (Exception ex) { logger.Error("Problemas no processamento do diretorio de arquivos: " + path + " " + ex.Message, ex); } }