Wie benutze ich MVCMailer, ohne meine Serviceebene zu zerstören?

9

Ich untersuche MVcMailer , um schönere Emails zu erstellen.

Aber eine Sache, die ich unsicher bin, ist, wie man den Code organisiert. Ich habe derzeit 2 Projekte. Eine für mvc und eine für meine Repos und Service-Schichten.

Mein zweites Projekt kennt MVC nicht und ich würde es gerne so behalten.

Ich denke, dass mein SMTP-Code in eine Service-Schicht oder einen Wrapper gehen würde, und dann würde ich ihn von anderen Service-Layern aufrufen, wenn ich E-Mails senden muss.

Wo passt der MVC-Mailer? Erzeuge ich den Körper im Controller und übergebe ihn dann an einen Service-Layer, der ihn an meine SMTP-Klasse weitergibt?

    
chobo2 27.03.2011, 23:07
quelle

2 Antworten

0

MVCMailer scheint bereits Unterstützung für das Senden von E-Mails zu haben. Wenn Sie die Konfiguration korrekt einrichten, sollte es in der Lage sein, die befüllten MailerViews ohne zusätzliche Implementierung per E-Mail zu versenden.

Ich bin mir der Rolle Ihres zweiten Projekts in Ihrer Lösung nicht sicher, aber hier sind zwei Möglichkeiten:

  1. Wahrscheinlich nicht praktisch ... Warte für die Version mit "E-Mail senden" aus einem Hintergrundprozess "

  2. Vergessen Sie Smtp aus Ihrem zweiten Projekt und mit Http rufen Sie einfach eine Ansicht auf was wiederum MVCMailer

  3. aufrufen würde
JTew 28.03.2011, 02:23
quelle
1

Meine Lösung bestand darin, Schnittstellen in der Dienstschicht zu erstellen, die meine Dienste dann verwenden können, um eine E-Mail-Nachricht abzurufen, während die Implementierung, die die Nachricht erstellt, sich weiterhin in der Webschicht befindet.

Die Schnittstellen befinden sich in der Service-Schicht:

%Vor%

Die Implementierungen befinden sich dann im Web (MVC) -Projekt:

%Vor%

Schließlich ist die Mailer-Schnittstelle in der Service-Schicht eine Abhängigkeit des Dienstes:

%Vor%

Wenn es in Abhängigkeitsinjektion verdrahtet ist, wird ein Web.UserMailer-Objekt für den Services.IUserMail-Parameter verwendet, um das UserCreationService-Objekt zu erstellen.

Ich habe versucht, das Beispiel so einfach zu halten, dass es einfach zu folgen ist. Sobald Sie jedoch einen Verweis auf eine IMailMessage in der Serviceebene haben, können Sie sie an Ihren SMTP-Code senden, anstatt einfach Send () as aufzurufen Ich mache. Für Ihre Zwecke müssen Sie möglicherweise die IMailMessage-Schnittstelle erweitern, um auf andere Teile der MvcMailMessage-Klasse zuzugreifen.

    
Soldarnal 09.12.2013 18:41
quelle