Projekt-Anfragen: Tel: 07022/9319004 info@CodeDocu.de Software Entwicklung in C# WPF Asp.Net Core Vba Excel Word SQL-Server EF Linq, UWP Net
#

 

Im Standard wird bei Asp Net Core MVC auf die Api-Schnittstelle zum Email-Service Provider: EmailGrid verwiesen.

Man kann aber auch einfach einen eignen Email-Client aufsetzen zu einem Email-Server wie MailEnable.

Mailenable ist ein kostenloses Email-System und läuft stabil auf allen Windows Servern.

 

 

EmailSender festlegen

 

Das Programm, welches die Emails definiert, sendet verarbeitet, wird in der Datei Services/EmailSender.cs geschrieben.

Zu Beginn ist die Methode SendEmailAsync als Task leer.

 

EmailSender Default-Code:

Dieser Code muss in Asp.Net Core MVC geändert werden

// This class is used by the application to send email for account confirmation and password reset.

// For more details see https://go.microsoft.com/fwlink/?LinkID=532713

public class EmailSender : IEmailSender

{

     public Task SendEmailAsync(string email, string subject, string message)

     {

         return Task.CompletedTask;

     }

}

 

EmailSender: Neuer Code

Email Code für MailEnable Server unter  Asp.Net Core 2 MVC

Der Code kann auf Pop, SMTP SSL eingestellt werden.

Hier der Code für  einen einfachen pop-Client

using System;

using System.Collections.Generic;

using System.Linq;

using System.Net;       //NetworkCredential

using System.Net.Mail;  //SmtpClient

using System.Threading.Tasks;

 

namespace Readdy.Services

{

    // This class is used by the application to send email for account confirmation and password reset.

    public class EmailSender : IEmailSender

    {

        public async Task SendEmailAsync(string To_Email_Address, string subject, string message)

        {

            //------------< SendEmailAsync() >------------

            //< check >

            if (To_Email_Address == null) return//todo <bool>=false

            //</ check >

 

            try

            {

                //< init >

                string sFrom_Email_Address = "test@domain.de";

                string sFrom_Email_DisplayName =  "Mailservice";

                string sSenderAppname = "Readdy.Net";

                string sHost = "pop.domain.de";

                int intPort = 25;

                string sEmail_Login = "your_login_on_Email_Server@domain.de";

                string sEmail_Passwort = "your_passwort_for_smtp_server";

                //</ init >

 

                //-< setup Email >-

                MailMessage email = new MailMessage();

                email.To.Add(new MailAddress(To_Email_Address));

                email.From=new MailAddress(sFrom_Email_Address,sFrom_Email_DisplayName);

                email.Subject = sSenderAppname + " " + subject;

                email.Body = message;

                email.IsBodyHtml = true;

                //email.Priority = MailPriority.High;

                //-</ setup Email >-

 

                //-< EmailClient >-

                SmtpClient smtp = new SmtpClient();

                smtp.Host = sHost;

                smtp.Port = intPort;

                smtp.Credentials = new NetworkCredential(sEmail_Login, sEmail_Passwort);

                smtp.EnableSsl = false;

                //-</ EmailClient >-

 

                //< send >

                await smtp.SendMailAsync(email);

                //</ send >

            }

 

            catch (Exception ex)

            {

                //do something here

                Console.WriteLine("Error EmailSender.cs error:" + ex.InnerException);

            }

 

 

            //return true;

            //------------</ SendEmailAsync() >------------

        }

    }

}

 

 

Weitere Einstellungen

 

Task: ForgotPasswort ändern

Wenn man den Email-Server testen möchte, dann kann man dieses über die Email-Confirmation ausführen.

https://Readdy.Net/Account/ForgotPassword

 

Änderung Task:ForgotPasswort

Die Methode ForgotPasswort prüft ob der User vorhanden ist und ob die Email schon bestätigt wurde.

Nach meiner Ansicht kann die Abfrage: User.IsEmailConfirmded ausschalten werden.

Code in Controller/AccountController/ForgotPasswort

Die gelbe Zeile ausmarkieren

public async Task<IActionResult> ForgotPassword(ForgotPasswordViewModel model)

        {

            if (ModelState.IsValid)

            {

                var user = await _userManager.FindByEmailAsync(model.Email);

                if (user == null//|| !(await _userManager.IsEmailConfirmedAsync(user))

                {

                    // Don't reveal that the user does not exist or is not confirmed

                    return RedirectToAction(nameof(ForgotPasswordConfirmation));

                }

..

..

 

 

Die Abfrage EmailConfirmed bezieht sich auf die Asp.MVC Tabelle: dbo.AspNetUsers und der Spalte: EmailConfirmed

 

 

Weitere Fehler

Beim Einstellen der Email-Verbindung können weitere Fehlermeldungen vom Server kommen:

 

Error Message Mail-Server:

User not local; please try a different path. The server response was: Sender address is not valid for your login. Check your email program settings.

 

Solution:

Email_From Address must exist

 

Error Message Mail-Server:

Syntax error, command unrecognized. The server response was: Welcome to MailEnable POP3 Server

Solution:

Port Address is 25 not 110 on MailEnable Pop

 

 

 

 

Weitere Informationen:

 

EmailSender Interface

Unterhalb der EmailsSender.cs liegt die Datei IEmailSender.cs.

Diese beinhaltet das sogenannte Interface. Das Interface wird quasi als Vorlage verwendet, auf welches alle Email-Anwendungen zugeschneidert werden.

Bei Verwendung des Asp Net MVC Core mit Email-Clients über Net.Sy

 

Email Interface

public interface IEmailSender

{

 Task SendEmailAsync(string email, string subject, string message);

}

 

 

Mobile
»
Asp.Net Core: Eigenen Email Provider einbinden
»
Chrome: wie kann man die Browser Informationen in Asp.Net Core 2 MVC ermitteln und anzeigen.
»
Client Auswertung mit Wangkanai Detection
»
Browser in Asp.Net Core 2 mit Wangkanai
»
Asp.Net Core 2 MVC: Email Sender Client schreiben.
»
Asp core: Cookie lesen und schreiben
»
Asp: Bild aktualisiert anzeigen trotz Browser Cache
»
Asp MVC: Formatiere Datum als Kurzes Datum
»
Asp MVC Core: HTML Text als HTML Elemente anzeigen
»
Asp: HTML in Text umwandeln

.

Jobs, Projekte, Angebote für Freiberufler, Selbstständig an Info@CodeDocu.de