Ich möchte MvcMailer in einer Klassenbibliothek verwenden, die im Wesentlichen mein One-Stop-Shop für das Verfassen und Senden von E-Mails für meine Lösung sein würde. Ich dachte, dass das ist, wofür MvcMailer entworfen wurde, aber es scheint, dass es keine meiner .cshtml-Dateien finden kann - ich nehme an, es erwartet sie in meinem Startprojekt.
Gibt es eine Möglichkeit, dass MvcMailer zu 100% von meinen anderen Projekten getrennt ist?
Danke.
Dies ist laut MvcMailer-Dokumentation nicht möglich Ссылка (Auszug unten) Vielleicht können Sie ein separates Web-Projekt haben, dessen einziger Zweck es ist, E-Mails zu senden und nur Anfragen von Ihrer Anwendung zu akzeptieren
E-Mail-Versand von einem Hintergrundprozess Müssen Sie E-Mails aus einem Hintergrundprozess senden? Ja, du hast Recht. Sie möchten Ihren Anfrage- / Antwort-Zyklus für die zu sendende Benachrichtigungs-E-Mail nicht blockieren. Was Sie wollen, ist stattdessen ein Hintergrundprozess, der es für Sie erledigt, auch wenn es nach einer kurzen Verzögerung gesendet wird. Folgendes können Sie tun:
Speichern Sie Ihre E-Mail-bezogenen Daten in einer Datenbank. Erstellen Sie einen REST / SOAP-Webdienst, der die E-Mails sendet. Dadurch wird sichergestellt, dass Ihr Mailer Zugriff auf den HttpContext hat, der für das ordnungsgemäße Funktionieren des Kern-ASP.NET MVC-Frameworks unerlässlich ist. Um beispielsweise Ihre Ansichten zu finden, erstellen Sie URLs und führen eine Authentifizierung / Autorisierung durch. Erstellen Sie eine einfache App, die den Web-Service aufruft. Dies könnte eine Windows-Dienst-App oder eine ausführbare App sein, die unter Windows-Task ausgeführt wird. Eine zukünftige Version von MvcMailer wird wahrscheinlich Unterstützung dafür haben. Aber es ist schwer aus zwei Gründen:
MailMessage ist standardmäßig nicht serialisierbar und hat viele komplexe Felder und Verknüpfungen. Das Kern-ASP.NET-Framework benötigt weiterhin HttpContext: (
Tags und Links asp.net-mvc-3 c# mvcmailer