From 805ff817b7176a329a65c65fb20b00c02e010ab2 Mon Sep 17 00:00:00 2001 From: Tokk Date: Fri, 12 Jun 2020 21:30:53 +0200 Subject: [PATCH] Mailversand an erlaubte Domains; --- .../MultipleChoiceTrainer.csproj | 1 + MultipleChoiceTrainer/Services/EmailSender.cs | 36 +++++++++++++++++-- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/MultipleChoiceTrainer/MultipleChoiceTrainer.csproj b/MultipleChoiceTrainer/MultipleChoiceTrainer.csproj index b17333f..60365ef 100644 --- a/MultipleChoiceTrainer/MultipleChoiceTrainer.csproj +++ b/MultipleChoiceTrainer/MultipleChoiceTrainer.csproj @@ -6,6 +6,7 @@ + diff --git a/MultipleChoiceTrainer/Services/EmailSender.cs b/MultipleChoiceTrainer/Services/EmailSender.cs index 99ad3a4..7da0997 100644 --- a/MultipleChoiceTrainer/Services/EmailSender.cs +++ b/MultipleChoiceTrainer/Services/EmailSender.cs @@ -1,8 +1,11 @@ using Microsoft.AspNetCore.Identity.UI.Services; +using MailKit.Net.Smtp; +using MailKit; +using MimeKit; using System; using System.Collections.Generic; -using System.Linq; using System.Threading.Tasks; +using System.Linq; namespace MultipleChoiceTrainer.Services { @@ -10,7 +13,36 @@ namespace MultipleChoiceTrainer.Services { public Task SendEmailAsync(string email, string subject, string htmlMessage) { - return Task.Run(() => System.Threading.Thread.Sleep(0)); + var allowedDomains = new List() { "rheaktionen.de", "rhetro.de", "tokk.de", "schertel.info" }; + if(string.IsNullOrEmpty(email) || !email.Contains("@")) + { + return Task.Run(() => System.Threading.Thread.Sleep(0)); + } + + if(!allowedDomains.Any(e => e.ToLower().Equals(email.Split("@").Last().ToLower()))) + { + return Task.Run(() => System.Threading.Thread.Sleep(0)); + } + + var message = new MimeMessage(); + message.From.Add(new MailboxAddress("Multiple Choice Traier", "noreply@tokk.de")); + message.To.Add(MailboxAddress.Parse(email)); + message.Subject = subject; + + message.Body = new TextPart("html") + { + Text = htmlMessage + }; + + using (var client = new SmtpClient()) + { + client.Connect("mx1.tokk-management.de", 465, true); + client.Authenticate("noreply@tokk.de", "5ue9iN8JgfNqLH3vgrPi"); + + client.Send(message); + + return Task.Run(() => System.Threading.Thread.Sleep(0)); + } } } }