2009-06-26 18 views
1

Ich bin ein Windows-Formular-Programmierer. Wir programmieren Funktionalität in der Regel in ein Benutzersteuerelement. Und viele Zeit Funktionalität erfordert eine E-Mail senden.Blockieren von E-Mails senden

Ich möchte etwas tun wie: - Wenn ich das Flag "Diese Anwendung läuft im Testmodus" einrichten. Dann sollten alle E-Mails, die von der Anwendung gesendet wurden (von jedem Benutzersteuerelement) blockiert werden.

Denken Sie daran, dass ich keine Änderungen an den vorhandenen Benutzersteuerelementen vornehmen möchte. oder die mail sending lib. Ich möchte, dass dies nur im Container oder eher in der Datei Program.cs geschieht.

Dank

+0

betrachte meine Anwendung als einen großen Container. Ich möchte überwachen, was auch immer passiert, zum Beispiel jemand ist Seniting Mail. Also jede Lösung auf der Anwendungsebene und nicht auf der Mail-Lib. (Das ist bereits geschrieben) oder auf der Steuerungsebene ist eine willkommene Lösung für mich. Danke –

Antwort

0

Diese Art von Einstellung in Ihrer app.config-Datei, in diesem Fall SMTP-Server-Adresse gehen. Ändern Sie dann diesen Wert für die Testumgebung in leer, damit Ihre E-Mail nirgendwohin geht.

+0

ich unterstütze diese Antwort, aber meine Anforderung ist es auf andere Weise zu blockieren. Da wir keine SMTP-Adresse verwenden, verwenden wir die SMTP-Adresse nicht wirklich in appconfig. Die Bibliothek kümmert sich darum. und ich habe keine Kontrolle darüber. also wollte ich es an meinem Ende machen. –

4

Sie können Inversion of Control verwenden. Haben, z.B. eine IMailer-Schnittstelle, implementiert von RealMailer und TestingMailer. RealMailer sendet tatsächlich eine E-Mail, während TestingMailer die E-Mails automatisch löscht. Konfigurieren Sie eine Produktionskonfiguration, die RealMailer einfügt, und eine Testkonfiguration, die TestingMailer einfügt.

0

Wenn Sie es zum lokalen Debuggen ausschalten möchten, können Sie dies tun.

#if DEBUG 
    CallMethod(); 
#endif 

Ansonsten Matthew Flaschen Antwort funktioniert gut.