2017-07-14 1 views
-5

Ich möchte das Sendeereignis abfangen und die E-Mail abbrechen, bevor sie gesendet wird. Ich meand: Jedes Mal, wenn ein Benutzer klickt Schaltfläche in einem Client (mit smpt natürlich mit) Ich mag den Sendevorgang abzubrechen und einige benutzerdefinierten Sachen E-Mail der Anhänge (falls vorhanden) und KörperC# Abbrechen einer E-Mail-Sendung mit smtpClient

EDIT hinzufügen:

Hier geht es, was ich erreichen möchte: Wenn ein Benutzer auf senden Schaltfläche mit, sagen wir sagen Mail-Anwendung von Windows 10, möchte ich nicht die E-Mail tatsächlich gesendet werden, möchte ich nur den Sendevorgang abbrechen, ändern E-Mail-Nachricht (Körper, Anlagen), und nur dann sendit

+5

Haben Sie irgendwas versucht? –

+3

[so] ist * nicht * ein kostenloser Code-Schreibdienst. Von Ihnen wird erwartet, dass Sie ** den Code selbst schreiben **. Nach [mehr Forschung] (http://meta.stackoverflow.com/questions/261592), wenn Sie ein Problem haben, können Sie ** posten, was Sie versucht haben ** mit einer ** klaren Erklärung, was nicht funktioniert ** und Bereitstellung eines ** [MCVE] **. Ich schlage vor, eine gute Frage und die perfekte Frage zu lesen (http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/). Nimm auch die [Tour]. – Igor

+2

Versuchen Sie, Programmierung verwenden, um es zu tun –

Antwort

1

Ganz unverblümt, das hat XY problem über alles geschrieben.

Sobald Sie Send aufrufen, gibt es keinen Mechanismus, um die Nachricht abzubrechen - die Klasse löst keine Ereignisse aus, bevor sie die E-Mail oder irgendetwas sendet, sie sendet es einfach. Stellen Sie nur sicher, dass Sie tatsächlich bereit sind, die Nachricht zu senden, bevor Sie sie senden.

Der tatsächliche Anwendungsfall dafür ist sowieso ziemlich klein; Angenommen, nur für das Argument, dass die Operation Send 2 Sekunden dauert (und es könnte leicht viel weniger dauern); Was ist die Wahrscheinlichkeit, dass jemand seine Meinung ändert (oder sogar in der Lage ist, schnell genug zu handeln, um zu verhindern, dass er ausgeht) in diesen 2 Sekunden?

Sie wären besser dran, die E-Mail-Nachricht vollständig zu erstellen und dann zu senden (anstatt Send aufzurufen, abzubrechen, fertig zu bauen und dann erneut zu senden).

TL; DR Sie können nicht, sollte nicht, und müssen nicht die Send Vorgang abzubrechen - nur nicht anfangen, bis Sie wissen, dass Sie bereit sind.

Verwandte Themen