Emails mit mailto sofort aus VB senden

  • VB.NET

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von HerrFrie.

    Emails mit mailto sofort aus VB senden

    Hallo zusammen,

    ich habe jetzt schon reichlich im Forum und Gockel gesucht, aber noch keine Antwort auf meine Frage gefunden.

    Ich möchte eine Nachricht/Email automatisch an eine Person senden, wenn bestimmte Kriterien erfüllt sind.

    Soll heißen, dass wenn ein Benutzer an seinem PC mit dem Programm arbeitet und dort verschiedene Kriterien erfüllt sind, soll von diesem PC aus eine Email mit dem Standard Email-Programm an eine bestimmte Personengruppe gesendet werden.

    Mit

    VB.NET-Quellcode

    1. Process.Start("mailto:emailadresse")
    öffnet sich eine neue Email des Standard Email-Programms.
    Das ganze läuft über einen Exchange Server und an die Daten komme ich nicht ran.

    Habe ich bei der Mailto Variante die Möglichkeit das so einzustellen, dass die Mail sofort ohne Ansicht gesendet wird ?

    Gruß
    HerrFrie

    HerrFrie schrieb:

    VB.NET-Quellcode

    1. Process.Start("mailto:emailadresse")
    macht genau das.
    Wenn Du aus VB heraus eine E-Mehl versenden willst, geht das ungefähr so (hier allerdings ohne Anhang):
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Imports System.Net.Mail
    2. Public Class Form1
    3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSend.Click
    4. Dim Msg As New MailMessage
    5. Dim myCredentials As New System.Net.NetworkCredential
    6. myCredentials.UserName = tbMailAbsender.Text '" andreas@absender.de"
    7. myCredentials.Password = tbMailPassword.Text '"Passwort des Absenders"
    8. Msg.IsBodyHtml = False
    9. Dim mySmtpsvr As New SmtpClient()
    10. mySmtpsvr.EnableSsl = True 'SSL aktivieren
    11. mySmtpsvr.Host = tbSmtpHost.Text '"smtp.web.de" 'bei web.de
    12. mySmtpsvr.Port = CInt(tbSmtpPort.Text)
    13. mySmtpsvr.UseDefaultCredentials = False
    14. mySmtpsvr.Credentials = myCredentials
    15. Try
    16. Msg.From = New MailAddress("Ich@absender.de")
    17. Msg.To.Add(tbMailEmpfänger.Text) '"entchen@empfänger.de")
    18. Msg.Subject = tbBetreff.Text '"Betreff"
    19. Msg.Body = tbInhalt.Text '"Inhalt"
    20. mySmtpsvr.Send(Msg)
    21. MsgBox("E-Mail gesendet.", MsgBoxStyle.Information, Title:="Information")
    22. Catch ex As Exception
    23. MsgBox(Err.Number & vbNewLine & ex.Message & vbNewLine & ex.StackTrace.ToString) 'Falls ein Fehler auftritt wird eine MsgBox angezeigt
    24. End Try
    25. End Sub
    26. End Class
    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!
    Häufig ist in Firmen-Umgebungen kein SMTP-Server erreichbar.
    Auch die Mail-Zugangsdaten sind nur dem Standard-Mail-Programm (üblicherweise Outlook) bekannt.
    So lässt sich kein SMTP-Versand programmieren.
    Und bei einem Exchange-Server funktioniert SMTP sowieso nicht.

    Wenn (wie bei dir) Outlook der generelle Standard-Mailclient ist, lässt sich die Aufgabe mit Outlook-Automation elegant lösen.

    Im Übrigen ist es Absicht, dass bei mailto die Mail vor dem Versand angezeigt wird.
    Jedes ordentliche Mail-Programm macht dies aus Sicherheitsgründen, weil es immer noch dem User überlassen werden sollte, ob er eine Mail verschicken will oder nicht.
    Auch bei Outlook-Automation muss der User eine Sicherheitsabfrage beantworten, bevor sie funktioniert, falls dein Programm nicht explizit zertifiziert ist.

    wenn ein Benutzer an seinem PC mit dem Programm arbeitet und dort verschiedene Kriterien erfüllt sind, soll von diesem PC aus eine Email mit dem Standard Email-Programm an eine bestimmte Personengruppe gesendet werden
    Wenn du eine Benutzerüberwachung schreiben willst, dann sende die Nutzerinformationen über eine TCP-Verbindung an einen zentralen "Überwachungsserver", der die Informationen dann per eMail verteilen kann.

    Ich hoffe, dir ist klar, dass solche Späße erst mal vom Betriebsrat abgesegnet werden müssen, wenn du (bzw. die Firma) nicht in Teufels Küche kommen willst.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    Delfuras schrieb:

    über die edge-transport rolle (2010) lässt sich ein SMTP-connector (send/receive) erstellen.
    Ja. Das tun sich allerdings die wenigsten Firmen an, einen Edge-Transport freizuschalten.

    Der Technik wurden dann unter Exchange 2013 noch zusätzliche Hürden in den Weg gelegt, weil die Funktionen des Hub-Transport-Server auf den Postfach-Server verlagert wurden.
    Da wird sich mancher Admin überlegen, ob er sich beim Upgrade den Mehraufwand antun will.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Erst mal vielen Dank für eure Antworten.

    Der Sinn im Programm soll sein, dass wenn ein Benutzer einen Nullbestand oder die Mindestmenge durch das Abbuchen erreicht, eine Mail an die Einkauf-Gruppe gesendet wird, da die nicht regelmäßig in das Programm rein schauen.
    Die Bestätigung zum Absenden der Mail wollte ich umgehen, damit diese auch wirklich abgesendet wird und nicht durch irgendwelche Helden gecancelt wird.

    Vielleicht habt ihr ja eine andere Idee, wie ich das anstellen kann, sonst kann ich einfach nur einen Hinweis machen, dass ein Null-/Mindestbestand erreicht wurde und eine Mail an den Einkauf generiert wird.

    Gruß
    HerrFrie
    Sieh Dir Post #3 an, außerdem kannst Du ja mal suchen nach EMail senden oder so.
    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!
    Moin Rod,

    da habe ich das Problem mit dem Benutzernamen und Passwort. Das kenne ich nicht und bekomme es bestimmt auch nicht.

    Das mit dem Mailto macht mir nur eine neue Email auf, schickt diese aber nicht sofort ab. Die sollte aber am Liebsten sofort abgeschickt werden, damit man nicht die Möglichkeit hat, diese nicht abzuschicken.

    Gruß
    HerrFrie

    HerrFrie schrieb:

    da habe ich das Problem mit dem Benutzernamen und Passwort.
    Das kannst Du ja zunächst mal mit Deiner privaten Mail ausprobieren.
    Ansonsten musst Du Dich an Deinen Systemadministrator wenden, der sollte Dir da helfen können.
    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 die oder Dein Chef das haben wollen, solltest Du Deinen Chef in die Spur schicken.
    Ich wette, dass es dafür bereits Lösungen gibt, denn Du bist ja nicht der Erste, der solch macht.
    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!
    Es ist schwierig zu erklären, bzw. auch zu verstehen.

    Das Programm wird nur an unserem Standort benutzt, da es nur auf unsere Bedürfnisse geschrieben und angepasst wurde. Alle anderen Anwendungen sind so aufgebläht, dass die Programme zu unübersichtlich und sowas werden.
    Wir haben schon versucht da ran zu kommen und sind gescheitert. Auch wir verstehen solche Ablehnung nicht, müssen aber damit leben.
    Dann müsst Ihr Euch halt dafür eine "private" Mailadresse einrichten. :D
    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!
    Sieh dir das mal an.
    dimastr.com/redemption/
    Ist eine Library welche mit Outlook kommuniziert. Man kann hier eine neue E-Mail öffnen oder versteckt versenden. Wir verwenden das auch in der Firma.
    In der Free Version muss man glaub ich einmal auf "I Accept" oder so drücken. In der gekaufen fällt dies weg.

    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten