2017-04-26 2 views
0

Wir haben eine klassische ASP-Anwendung, die wir gerade von Windows 2008 R2 auf Windows 2012 R2 Core migriert haben.Senden von E-Mails von Classic ASP unter Windows 2012 R2 Server Core

Anscheinend enthalten Core-Versionen von Windows keine cdosys oder cdonts und unsere Anwendung kann daher keine E-Mails mehr senden.

Die meisten Ratschläge, die ich finden kann, schlagen vor, system.net.mail für das Senden von E-Mails verwenden, die natürlich eine .NET-Technologie ist, und wir verwenden klassische ASP.

Wir haben .NET auf unserem System, aber ich bin nicht sicher, ob der klassische ASP mit einer .NET-Seite zum Senden von E-Mails sprechen könnte.

Neben der Verwendung eines COM-Dienstprogramms von Drittanbietern wie Persits ASPEmail gibt es irgendwelche nativen Möglichkeiten, um dies zu umgehen?

Wir wollen die Server-Core-Instanz NICHT in die Vollversion von Windows konvertieren. Das tötet eine Ameise mit einer Bazooka. Dies betrifft nur zwei Stellen in unserem Code und alles andere funktioniert gut auf Core.

+0

Ich hatte dieses Problem selbst und [fand die Antwort] (http://stackoverflow.com/a/42509944/692942). – Lankymart

+0

AFAIK Drittanbieter-E-Mail-Komponenten wie ASPEmail sind nur Wrapper für CDO. Ich habe dies noch nie zum Versenden von E-Mails versucht, aber es sollte möglich sein, msxml zu verwenden, um Daten in einem asp.net Webformular zu veröffentlichen. Siehe diese Frage - http://stackoverflow.com/questions/1463635/how-to-perform-an-http-post-request-in-asp – John

+0

@ John in dieser speziellen Frage das Problem war etwas anders, ich habe diese Antwort veröffentlicht als Workaround, aber es hat diese Frage nie wirklich beantwortet. Im Nachhinein hätte ich eine Frage stellen und selbst beantworten sollen. – Lankymart

Antwort

0

Leider wurde CDONTS vor einiger Zeit von CDOSYS abgelöst. Bei der Migration von Windows Server 2008 zu Windows Server 2012 hatte ich genau das gleiche Problem, schaffte es aber auf find a fix.

Es beinhaltet eine Kopie der cdonts.dll Datei von Windows Server 2008 Server und Hinzufügen von es zum Windows Server 2012 Server dann Registrierung mit dem entsprechenden COM-Subsystem, ohne Code ändern oder eine 3rd-Party-Bibliothek installieren müssen.

Hoffentlich funktioniert die gleiche Methode mit Core, aber ich habe es nicht getestet.

+0

Ich habe CDONTS nicht versucht, aber ich habe diesen Trick mit CDOSYS versucht und es funktioniert nicht :(Ich könnte CDONTS für Kichern ausprobieren. – Brad

+0

@brad Ich habe es nie mit CDOSYS nur CDONTS versucht, es kommt darauf an wie Die CDO-Objekte werden in Code instanziert.Wenn es sich um "Server.CreateObject" ("CDONTS.NewMail") handelt, muss die Datei "cdonts.dll" kopiert und registriert werden. Wenn dies nicht funktioniert, liegt dies möglicherweise am App-Pool in IIS nicht aktiviert für 32 Bit, wenn die DLL in der 32-Bit-Registrierung registriert wird.Es kann Minenfeld sein, habe eine Anleitung zum Registrieren von COM [hier] (http://Stackoverflow.com/a/35985827/692942). – Lankymart

+0

@ Lankymart - Funktioniert CDONTS tatsächlich mit aktuellen Versionen von IIS? Nach meiner Erfahrung mit IIS7 und höher hat CDOSYS immer einen Konfigurationsabschnitt benötigt, selbst wenn der SMTP-Server sich auf demselben Rechner befindet.Dies lässt vermuten, dass CDONTS in derselben Umgebung nutzlos sind – John

Verwandte Themen