public void TestSending() { var emailSenderRequisites = new EmailSenderRequisites { ServerLogin = "******", ServerEmail = "*****@*****.**", ServerPassword = @".L\yW#{^0M#ExONc[p(sP=[#h", SmtpHost = "smtp.gmail.com", SmtpPort = 587, }; var sender = new EmailSender(emailSenderRequisites); sender.SendEmail(new EmailMessage { RecipientEmail = "*****@*****.**", Subject = "Test subject", Body = "Test message", Attachments = new[] { new Attachment { Data = Encoding.UTF8.GetBytes("Hello from attachment"), Filename = "simple.txt", } } }); }
static void Main(string[] args) { var secretManager = new SecretManager(); var emailSenderRequisites = new EmailSenderRequisites { ServerLogin = "******", ServerEmail = "*****@*****.**", ServerPassword = secretManager.GetSecret("password"), SmtpHost = "smtp.gmail.com", SmtpPort = 587, }; var responsibleRepository = new ResponsibleRepository(); var emailRepository = new EmailRepository(); var emailSender = new EmailSender(emailSenderRequisites); Console.Out.WriteLine("Email sender started!"); while (true) { var unsentEmails = emailRepository.ReadUnsentEmails().Shuffle(); Console.Out.WriteLine($"Found {unsentEmails.Length} unsent emails"); foreach (var emailId in unsentEmails) { try { var email = emailRepository.ReadEmail(emailId); var doublers = responsibleRepository.GetDoublers(email.ResponsibleId); var myEmail = "*****@*****.**"; // todo(sivukhin, 19.05.2019): Use email.RecipientEmail instead of myEmail foreach (var targetEmail in new[] { myEmail }.Concat(doublers.Select(x => x.Email))) { Console.Out.WriteLine($"Send message to recipient: {targetEmail}"); email.RecipientEmail = targetEmail; emailSender.SendEmail(email); emailRepository.SetEmailProcessed(emailId); } } catch (Exception e) { Console.Error.WriteLine(e); } } Thread.Sleep(TimeSpan.FromSeconds(1)); } }