Fehlerbericht / Email senden

  • VB.NET

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von 12nico07.

    Fehlerbericht / Email senden

    Hi,

    Ich habe ein Programm geschrieben, dass (zumindest für meine Verhältnisse) recht komplex ist.
    Da es in meiner Abteilung auf der Arbeit eingesetzt werden soll, hatte ich die Idee bei einem Fehler im Programm automatisch eine Email zu generieren, die an meine Email Adresse gesendet wird, damit ich das Programm dann verbessern kann.

    Jetzt ist meine Frage, wie ich diese Email erstelle/wegschicke.
    So wie ich bisher gelesen habe, muss ich immer eine Absender Email angeben, und das mit Passwort. Genau dieses möchte ich nach Möglichkeit vermeiden.
    Ich möchte einfach meine Emailadresse eintragen und dann eine Variable vom Typ String als Nachricht versenden.

    Ich weiss nicht ob es wichtig ist aber jeder Mitarbeiter empfängt seine Emails über Outlook. Bei den Kontoinformationen steht
    Name: Microsoft Exchange Server
    Typ: Exchange (Standart)

    Vielen Dank schon mal.

    //Edit: Ich weiss, dass es in der SUFU sehr viele Themen zum Email senden gibt, allerdings habe ich nichts gefunden ohne einen Absender.
    Da fällt mir noch etwas ein.

    Wie gebe ich den Server an, der immer als smtp.web.de... angegeben wird, wie finde ich den richtigen heraus?

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

    @12nico07:: Besser ist es, wenn der Kunde weiß, dass eine EMail geschickt wurde, dass Du der Empfänger bist und dass er selbst der Absender ist.
    Stichwort: Process.Start("mailto:DEINE.EMAIL@xyz.de").
    Ordentlich mit Betreff und Text geht das so:

    VB.NET-Quellcode

    1. Process.Start("mailto:DEINE.EMAIL@xyz.de?subject=Der Betreff halt&body=bla bla bla")
    Mit Anhängen tut sich diese Form allerdings sehr schwer.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    mach es doch mit einem SMTP Client:

    VB.NET-Quellcode

    1. Imports System.Net
    2. Imports System.Net.Mail
    3. Imports System.Net.Sockets
    4. Private Sub btnSend_Click(sender As Object, e As EventArgs) Handles btnSend.Click
    5. Try
    6. Dim MailMessage as new MailMessage
    7. MailMessage.From = New MailAddress("MailAddress eintragen")
    8. MailMessage.Sender = New MailAddress("MailAddress eintragen")
    9. If rbP1.Checked = True Then
    10. MailMessage.Priority = MailPriority.Low
    11. ElseIf rbP2.Checked = True Then
    12. MailMessage.Priority = MailPriority.Normal
    13. ElseIf rbP3.Checked = True Then
    14. MailMessage.Priority = MailPriority.High
    15. End If
    16. MailMessage.To.Add("MailAddress eintragen")
    17. MailMessage.Subject = txtBeschreibung.Text
    18. MailMessage.Body = txtMail.Text
    19. 'create SMTPClient
    20. SMTPClient.Credentials = New NetworkCredential("MailAddress", "Mein Mail Passwort")
    21. SMTPClient.Host = "Meine Mail SMTP"
    22. SMTPClient.Port = "Mein SMTP Port"
    23. SMTPClient.EnableSsl = True 'Mail SSL aktivieren
    24. 'send Mail
    25. SMTPClient.Send(MailMessage)
    26. CreateObject("sapi.spvoice").speak("Die Mail wurde versendet.")
    27. Catch ex As Exception
    28. CreateObject("sapi.spvoice").speak("Die Mail konnte nicht versendet werden.")
    29. End Try
    30. End Sub

    Racabix schrieb:

    VB.NET-Quellcode

    1. "Mein Mail Passwort"
    Glückwunsch, Du hast soeben ein Mailkonto verschenkt. :rolleyes:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Den Code hab ich aus meinem Projekt genommen. Da steht My.Settings.MailPassword

    bei
    MailMessage.From = New MailAddress("MailAddress eintragen")
    MailMessage.Sender = New MailAddress("MailAddress eintragen")
    SMTPClient.Credentials = New NetworkCredential("MailAddress", "Mein Mail Passwort")

    deine Mail Adresee

    und
    MailMessage.To.Add("MailAddress eintragen")

    die vom empfänger

    Racabix schrieb:

    My.Settings.MailPassword

    RodFromGermany schrieb:

    Glückwunsch, Du hast soeben ein Mailkonto verschenkt. :rolleyes:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Du speicherst das Passwort im Klartext also auf der Festplatte nicht gut hatte das damals auch so ist keine gute Idee da ein Angreifer so einfach auf Passwort und Co. Zugreifen kann

    @Racabix

    wie ich bisher gelesen habe, muss ich immer eine Absender Email angeben, und das mit Passwort. Genau dieses möchte ich nach Möglichkeit vermeiden
    @Racabix:: Sieh Dir mal den Post #5 an und probier das aus.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Wenn man eine Mail mit der Fehlermeldung haben möchte würde ich den Code nehmen und in ein Modul packen.
    @RodFromGermany
    ok hab den 5. Post mir angesehen ja geht so auch

    @iEi ich weiß das das Passwort nicht verschlüsselt in AppData steht. Aber das ist mir egal weil wer sollte sich meine Mails ansehen die ich mir selber nicht oft ansehe. Ich hab noch eine Mail Adresse wo ich Mails hab die mich interessieren. Also ist es mir völlig Egal wenn jemand mein Mail Passwort weiß.
    Hi,
    erstmal vielen Dank für die Antworten.

    Ja ich hätte dem User so oder so die Möglichkeit gegeben zu entscheiden ob er einen Fehlerbericht senden möchte oder nicht.
    Dachte nur so wäre es am leichtesten, dass eine MsgBox angezeigt wird, er klickt ja und damit hat es sich für ihn erledigt.
    Wir hatten mal in der Schule ein Smtp Protokoll erstellt (in Java) und konnten dann dort eine beliebige Email als Absender festlegen und über den Schulserver verschicken, deshalb bin ich drauf gekommen...


    Werde dann gucken wie ich es umsetzte wenn ich wieder auf der Arbeit bin. Vielen Dank!