2 Stimmen

MvcMailer in einem Nicht-MVC-Projekt verwenden

Ich habe einen Windows-Dienst, der in regelmäßigen Abständen E-Mails versenden soll.

Neben dem Windows-Dienst-Projekt gibt es ein MVC 3-Projekt, das E-Mails mit MvcMailer (schön) versendet.

Ich möchte die gleiche Engine verwenden, um E-Mails für den Windows-Dienst zu versenden.

Wie soll ich das machen?

Importieren Sie die MVC-Binärdateien und erstellen Sie einen Controller und neue Ansichten für diesen Zweck? Wird es funktionieren?

Die Speicherung in der Datenbank und die Aufforderung an mein Webprojekt, die E-Mail zu senden, ist möglicherweise nicht die beste Lösung, da die Informationen das Ergebnis einer Abfrage sind und zu groß sind, um in der Anfrage gesendet zu werden.

Die einzige andere Möglichkeit, die ich sehe, ist, einfach das Webprojekt aufzufordern, die gesamte Arbeit zu erledigen, aber auf diese Weise wäre es nicht vorteilhaft, den Windows-Dienst in einem anderen Dienst zu platzieren, um die Ressourcen der Website-Anwendung zu sparen. Wie würden Sie es machen?

4voto

Eric J. Punkte 143512

Als Alternative zu MVC Mail kann ActionMailer.NET nun auch eigenständig außerhalb von MVC verwendet werden.

Die Einzelheiten werden hier beschrieben

http://geeksharp.com/2011/07/06/actionmailer-0-6-released/

0voto

Adam Tuliper Punkte 29789

Warum denken Sie, dass die Abfrage an mvcmailer uns zu groß ist? Wenn Sie die Mailer MVC-Projekt bereits arbeiten und über eine restful URL ausgesetzt, das wird Ihre E-Mail-Dienst und rufen Sie es einfach als eine Web-Anfrage von Ihrem Dienst.

Sie können die Größenbeschränkungen in Ihrem Antrag umgehen, das sollte kein Problem sein.

0voto

Roman Punkte 1167

Ich würde argumentieren, dass der Aufruf eines mvc-Mailers aus dem Dienst ein Overkill sein könnte. Wenn das mvc-Projekt soll das Senden der E-Mail-API für alle Ihre anderen Lösungen aussetzen, dann bauen eine REST-API könnte sinnvoll sein. Wenn Sie jedoch nur die Funktionalität der Aktionsmethode in den Windows-Dienst bringen wollen, würde ich eine prozessinterne funktionale Komponente wählen. Wenn Sie die Logik der mvcmailer-Aktionsmethode in eine andere Assembly umwandeln können, warum tun Sie das nicht einfach und fügen diese Assembler als Abhängigkeit in Ihre Windows-Service-Lösung ein. Wenn Sie den Gesamtzweck des Mailers angeben können und wie er im Webszenario verwendet wird, kann uns das helfen, eine bessere Architektur zu erstellen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X