E-Mail Versand an nicht existierende E-Mail versenden/ Fehler abfangen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von mgbig.

    E-Mail Versand an nicht existierende E-Mail versenden/ Fehler abfangen

    Moin

    Ich versende Statusmails für den Auftragsstatus von Bestellungen. Manch ein Kunde ist leider nicht in der Lage seine E-Mail vernünftig zu tippen ;) Das Programm bricht die Podedure ab, gibt aber keinen Fehler aus.
    Das ist der Code

    VB.NET-Quellcode

    1. Private Sub mail_senden(email As String, nachricht As String)
    2. Dim message As New MailMessage("noreply@domain.de", email, "[XXXXX] Status Auftrag", nachricht)
    3. message.ReplyToList.Add(ReplyToMail)
    4. Dim emailClient As New SmtpClient("smtp.domain.de")
    5. emailClient.Credentials = New Net.NetworkCredential("noreply@domain.de", "password")
    6. emailClient.Port = 587
    7. emailClient.Send(message)
    8. End Sub


    Gibt es eine Möglichkeit die E-Mail vorab auf Gültigkeit zu prüfen? Oder den Fehler abzufangen obwohl es keine Fehlerausgabe gibt?

    Ich hoffe, ich habe mich verständlich ausgedrückt.

    Danke mgbig

    CodeTags korrigiert ~VaporiZed
    Ich bin Umsteiger: Früher VB 4.0 prof, heute VB NET unter Studio 2019 Community Edition (und da noch ein Greenhorn :D )

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    Das programm wird bei nicht existierender Mail sicher nicht abbrechen, davon bekommt das programm nämlich nichts mit. Dein Programm veranlasst nur das senden beim Mailserver, das senden macht der Mailserver. Eine Benachrichtigung, wenn die Mail nicht zugestellt werden konnte, geht auch an den Mailserver.

    Und nein, feststellen ob die Adresse existiert, das geht so nicht. Allerdings solltest du besser die Adresse bei Registrierung bestätigen lassen, Email mit Bestätigungslink verschicken, bestätigen lassen, erst dann alle nötigen Funktionen freischalten(bestellen lassen).


    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Takafusa“ ()

    Danke für die schnelle Antwort. Die E-Mail Prüfung übernimmt die Shopsoftware (oder eben nicht!!) da kann ich leider nicht so viel machen. Welcher Online-Shop verifiziert eine E-Mail?

    Es werden mehrere E-Mails gleichzeitg verschickt. Und wenn eine falsche E-Mail dran kommt, dann bricht die Schleife ab. Also irgendwie muss das Programm erkennen, dass hier was nicht in Ordnung ist. Ich hatte neulich eine E-Mail, die endete auf @t-önline.de (also mit Ö). Das wollte er nicht! Evtl. muss ich mir ein Protokoll schreiben, dass dann Soll und Ist vergleicht.... Mal schauen
    Ich bin Umsteiger: Früher VB 4.0 prof, heute VB NET unter Studio 2019 Community Edition (und da noch ein Greenhorn :D )

    mgbig schrieb:

    Welcher Online-Shop verifiziert eine E-Mail?


    Welcher nicht? Also da wo ich bestelle bin ich mir sehr sicher, das ich die Mail-Adresse erst bestätigen musste. Ich selbst handhabe es nicht anders. Ohne validierte Mail-Adresse kann man bei mir nur in den Einkaufswagen legen, aber nicht bestellen, wird auf den Bestell-Button geklick, wird darauf hingewiesen, das die Mail-Adresse erst bestätigt werden muss und das vorher nichts geht.

    Schon allein wegen Newsletter oder Werbung lasse ich die Mail validieren, gibt beim registrieren zwar ein opt-in bei mir, aber da kann sich jemand einen Spaß erlauben und andere nerven, auch kann es rechtliche folgen haben, würde ich jemanden unerlaubt Werbung/Newsletter schicken, kann ich schnell die Kacke am dampfen haben. Ist die Mail validiert, und es wurde via opt-in für Newsletter/werbung zugestimmt, bin ich auf der sicheren Seite.
    Welche Meldung kommt denn, wenn eine Ö-Adresse angegeben wird? Ein bedingungsloser Abbruch ist programmtechnisch m.E. nicht möglich. Will heißen: Ich kann mir nicht vorstellen, dass das Programm von alleine beschließt, kommentarlos die Schleife zu verlassen. Gibt's da irgendein Try-Catch oder UnhandledExceptionHandler in dem Programm? Teste mal bitte in nem neuen Programm nur den Mailversand an eine ungültige Adresse.
    Zur Behandlung kann ich nur sagen: Wenn bei mir Mails eintreffen, filtere ich diese. Ist eine Mailer-Daemon-Adresse dabei, werte ich diese inhaltlich aus und starte ein Meldeprogramm, welches mir sagt, dass ein Mailsversand gescheitert ist. Mehr Rückmeldung als die Automail meines Anbieters bekomme ich nicht.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Wenn du es ganz sicher haben willst, dann kontaktierst du den Zielmailserver vorab, um nach der Korrektheit der Mailadresse zu fragen. Also z. B. verbindest du dich mit dem Mailserver, der für t-online.de zuständig ist, und sendest den entsprechenden Befehl. Streng genommen könntest du die Mail auf diese Weise auch senden, allerdings werden heutzutage viele Spamfilter deine Mail blocken, weil diese von einer Einwahl-IP und nicht von einem ordentlichen Server mit Internet-Domain kommt. Sollte schon die Mail-Domain (z. B. t-önline) falsch sein, so würdest du das auch merken, weil keine Verbindung aufgebaut werden kann bzw. kein Mailserver im MX-Record gefunden wird (weil's die Domain nicht gibt).

    Hier sind ein paar Ansätze, auch wenn es da eher um PHP geht:
    webdigi.co.uk/blog/2009/how-to…without-sending-an-email/
    stackoverflow.com/a/566121
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    @Takafusa Sorry, aber reine Shops verifizieren nicht sehr häufig meine Mail. Es kommt vor, das man eine Mail 2x eingeben muss und ja, beim Versand von Newslettern gibt es natürlich zwachsweise eine Verifizierung. Aber ich weiß nicht, welcher Shop das macht. Ich kaufe häufiger bei kleinen Shops, so dass ich mich häufiger anmelde, habe das aber lange nicht mehr gehabt. Mein aktueller Shop (nicht mehr lange) ist ein Magento Shop

    @VaporiZed Es kommt leider keine Meldung. Da ich mir aber noch alle Mails als Kopie senden lasse, kann ich feststellen, dass mit der falschen EMail der Versand stoppt . Es werden natürlich mehrere Mails in einer Schleife verschickt. Das Programm geht aber an anderer Stelle weiter.

    Ich bin über Eure Links zu 2 kleinen Codeschnipseln gekommen, die mir erst mal reichen. Es wird erst per regex die plausible Schreibweise geprüft und dann sende ich ein ping auf den Server. Das ist zwar nicht perfekt, aber für meine Zwecke ok. Bin gerade am falschen Rechner, reiche die Schnipsel gerne nach.
    Danke bis hierhin
    Ich bin Umsteiger: Früher VB 4.0 prof, heute VB NET unter Studio 2019 Community Edition (und da noch ein Greenhorn :D )