E-Mail Versand mit Outlook-Signatur

  • VB.NET

Es gibt 23 Antworten in diesem Thema. Der letzte Beitrag () ist von Nofear23m.

    E-Mail Versand mit Outlook-Signatur

    Hallo,

    vielleicht hat der ein oder andere ja einen Tipp für mich....

    Ich möchte eine E-Mail mit Outlook versenden und verwende dafür folgenden Code:

    VB.NET-Quellcode

    1. Private Sub GetStr()
    2. str = Nothing
    3. str += "<html><div><table><tr>Hallo Herr Mohr,<br><br></tr>"
    4. str += "bitte teilen Sie mir mit, wieviele KLB/LSB für die " + DateTime.Today.AddMonths(+1).ToString.Substring(0, 10).Substring(3) + " Hebung angefallen sind, sowie die jeweiligen Versandtermine."
    5. str += "</table></table></div></html>"
    6. End Sub
    7. Public Function Mail_Erstellen(ByVal MailAdresse As String, ByVal Betreff As String, ByVal MailText As String) As Boolean
    8. Try
    9. Mail_Erstellen = False
    10. Dim out As New Interop.Outlook.Application
    11. Dim m As Interop.Outlook.MailItemm = CType(out.CreateItem(Interop.Outlook.OlItemType.olMailItem), Interop.Outlook.MailItem)
    12. m.Subject = Betreff
    13. GetStr()
    14. m.HTMLBody = str
    15. m.Display()
    16. m.To = MailAdresse
    17. m.Recipients.ResolveAll()
    18. 'm.Send()
    19. Mail_Erstellen = True
    20. Return True
    21. Catch eex As Exception
    22. End Try
    23. End Function


    Funktioniert auch alles einwandfrei, jedoch möchte ich das eine entsprechende Signatur mit angeführt wird....Könnt Ihr mir da weiterhelfen ?

    Habe etwas über GetInspector gelesen aber ohne weitere Kenntnis ?(
    Schlimmer als ein Elefant im Porzellanladen, ist ein Igel in der Kondomfabrik und Nutella hat Lichtschutzfaktor 9,7 8)
    Falls Du diesen Thread meinst : " Outlook mit Signatur - Zwischenspeicher ", den hab gelesen, allerdings weiß ich nicht welcher Teil des Codes nun explizit für die Signatur zuständig ist....... Magst Du mir da mal einen Wink mit dem Zaunpfahl geben?
    Schlimmer als ein Elefant im Porzellanladen, ist ein Igel in der Kondomfabrik und Nutella hat Lichtschutzfaktor 9,7 8)
    Ups Sorry, dachte der Beitrag war gelöst. Sorry!

    Hast denn mal mit dem 2. Post experimentiert?

    Schau mal bei msdn.de vorbei und such mal mach getinspector.

    Du findest deine erstellte Signatur unter BENUTZER\DEIN ACCOUNT\appdata\Signatures

    diese kannst du in deinen code mit einbauen.
    I.d.R. liegen 3 Varianten vor. HTML/TXT/ReachText
    herzlichen Dank :)

    hab mich danach orientiert und bin zu folgendem Ergebnis gekommen :

    VB.NET-Quellcode

    1. Dim objOutlook As New Interop.Outlook.Application
    2. objOutlook = New Interop.Outlook.Application
    3. Dim mail As Interop.Outlook.MailItemmail = objOutlook.CreateItem(Interop.Outlook.OlItemType.olMailItem)
    4. mail.To = "emailadresse"
    5. mail.Subject = Betreff
    6. GetStr()
    7. mail.Display()
    8. Private Sub GetStr()
    9. str = Nothing
    10. str += "<html><div><table><tr>Hallo Herr Mohr,<br><br></tr>"
    11. str += "bitte teilen Sie mir mit, wieviele KLB/LSB für die " + DateTime.Today.AddMonths(+1).ToString.Substring(0, 10).Substring(3) + " Hebung angefallen sind, sowie die jeweiligen Versandtermine."
    12. str += "</table></table></div></html>"
    13. End Sub


    Nun wird mir die Signatur komplett und völlig einwandfrei angezeigt, aber mein Bodytext fehlt......... Bin ich blind ????? ?(
    Schlimmer als ein Elefant im Porzellanladen, ist ein Igel in der Kondomfabrik und Nutella hat Lichtschutzfaktor 9,7 8)
    danke...wenn ich Dich richtig verstanden habe , würde ich die Datei so einbinden :

    VB.NET-Quellcode

    1. Clipboard.SetDataObject("C:\Users\kuschewe\AppData\Roaming\Microsoft\Signatures\cc.htm")


    allerdings wird mir dann nicht die hinterlegte Signatur angezeigt, sondern nur der Pfad



    VB.NET-Quellcode

    1. C:\Users\kuschewe\AppData\Roaming\Microsoft\Signatures\cc.htm


    ?(

    VB.NET-Quellcode

    1. Dim objOutlook As Outlook.Application
    2. objOutlook = New Outlook.Application
    3. Dim mail As Outlook.MailItemmail = objOutlook.CreateItem(Outlook.OlItemType.olMailItem)
    4. mail.To = "E-Mail Adresse"
    5. mail.Subject = "Betreff"Clipboard.SetDataObject("C:\Users\kuschewe\AppData\Roaming\Microsoft\Signatures\cc.htm")
    6. Dim myData As IDataObject = Clipboard.GetDataObject()mail.Body = "Hello World " & CType(myData.GetData(GetType(String)), String)
    7. mail.Display()
    Schlimmer als ein Elefant im Porzellanladen, ist ein Igel in der Kondomfabrik und Nutella hat Lichtschutzfaktor 9,7 8)
    Versuch es mal ohne Pfadangabe
    nur Clipboard.SetDataObject
    Der Pfad muss ja bereits durch Outlook bekannt sein. und vergiß wenn du Aufzählungen von Strings machst nicht das & dazwischen

    VB.NET-Quellcode

    1. mail.Subject = "DIES IST DIE BETREFFZEILE DER MAIL"
    2. mail.body= "HIER WILL ICH EVENTUELL MEINEN TEXT AUS EINER TEXTBOX DRIN HABEN UND MEINE SIGNATUR:"&Clipboard.SetDataObject() 'versuch es bei setdateobjekt mit (cc.htm), kann hier nix testen im mom.

    VB.NET-Quellcode

    1. Clipboard.SetText(IO.File.ReadAllText("C:\Users\DeinUserName\AppData\Roaming\Microsoft\Signatures\Neue Signatur.txt"))
    2. Dim myData As IDataObject = Clipboard.GetDataObject()
    3. mail.Body = "Dein Text im Body" & vbCrLf & vbCrLf & CType(myData.GetData(GetType(String)), String)
    4. mail.Display()


    Sollte so klappen.

    Beste Grüße

    sterat
    @Steamy2010: Hat's geklappt?

    @All: Ist es möglich, den Text der mail.Body übergeben wird, zu formatieren (Schrift- u. Schriftgröße)?

    VB.NET-Quellcode

    1. mail.Body = "Dein Text im Body" & vbCrLf & vbCrLf & CType(myData.GetData(GetType(String)), String)
    kann mir jemand vielleicht erklären, warum ich bei diesem Code nun Probleme mit dem Zeichensatz(Umlaute und Sonderzeichen werden falsch angezeigt) habe ??? Ist auch nur bei diesen generierten Mails.... muss ich vorher im Code noch explizit einen Zeichensatz angeben und wenn wie mach ich das? 8| ?(

    VB.NET-Quellcode

    1. Private Sub emailVersand_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles emailVersand.Click
    2. Dim objOutlook As Outlook.Application
    3. objOutlook = New Outlook.ApplicationDim myData As IDataObject = Clipboard.GetDataObject()
    4. Dim mail As Outlook.MailItemmail = objOutlook.CreateItem(Outlook.OlItemType.olMailItem)
    5. mail.To = "E-Mail Adresse"
    6. mail.Subject = "Abfrage Versandtermine für : " + DateTime.Today.AddMonths(+1).ToString.Substring(0, 10).Substring(3)Clipboard.SetText(IO.File.ReadAllText("C:\Users\khuzdtfd\AppData\Roaming\Microsoft\Signatures\cc.htm"))
    7. GetStr()
    8. mail.HTMLBody = str & vbCrLf & vbCrLf & CType(myData.GetData(GetType(String)), String)
    9. mail.Display()
    10. End Sub
    Schlimmer als ein Elefant im Porzellanladen, ist ein Igel in der Kondomfabrik und Nutella hat Lichtschutzfaktor 9,7 8)
    herzlichen dank an alle, hab es nun hinbekommen :thumbsup:

    VB.NET-Quellcode

    1. Clipboard.SetText(IO.File.ReadAllText("C:\Users\Benutzername\AppData\Roaming\Microsoft\Signatures\cc.htm", System.Text.Encoding.Default))
    Schlimmer als ein Elefant im Porzellanladen, ist ein Igel in der Kondomfabrik und Nutella hat Lichtschutzfaktor 9,7 8)

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Steamy2010“ ()

    hallo zusammen,

    ich bin grad als laie auch an dem thema dran und sehe dass ihr es gelöst habt - allerdings hab ich nur die bausteine der lösung und weiß nichts damit anzufangen :-/

    das hier ist mein VBA-code (bis jetzt):

    Visual Basic-Quellcode

    1. Private Sub Befehl26_Click()
    2. Dim Applikation As New Outlook.Application
    3. Dim mail As Outlook.MailItem
    4. Set mail = Applikation.CreateItem(olMailItem)
    5. mail.To = Me![TERMINkundeEMAIL]
    6. mail.Subject = "Termin-Bestätigung"
    7. mail.Body = "Hiermit bestätigen wir den vereinbarten Termin am" & " " & Me![TERMINdat] & " um " & Me![TERMINzeitVON] _
    8. & vbCrLf & "Mit freundlichen Grüßen"
    9. mail.SentOnBehalfOfName = "info@meintermin.de"
    10. mail.Display
    11. Me![TERMINokERLEDIGT] = -1
    12. End Sub


    ich weiß nicht ob VB6 das richtige ist - wo find ich das raus? ich arbeite mit access 2010...

    nach oder anstelle des "mit freundlichen grüßen" sollte eigentlich noch die signatur rein - hier der pfad dorthin:
    C:\Users\RBT\AppData\Roaming\Microsoft\Signatures

    freu mich auf eure hilfe
    Hallo Zusammen,

    ich hoffe Ihr könnt mir weiterhelfen. Ich habe alles so gemacht wie oben beschrieben. Bei mir wird zwar der Name und die Telefonnummer der Signatur usw. angezeigt, jedoch nicht das Logo, dass sich ein Verzeichnis darunter befindet. Es wird lediglich ein Platzhalter angezeigt.

    Mein Code:

    VB.NET-Quellcode

    1. Private Sub Senden(ByVal Hauptempfänger As String, CC_string As String, ByVal strSubject As String, ByVal strBody As String, strHtmlBody As String)
    2. Dim anwendung As Microsoft.Office.Interop.Outlook.Application = New Microsoft.Office.Interop.Outlook.Application
    3. Dim myData As IDataObject = Clipboard.GetDataObject()
    4. Dim neueNachricht As Outlook.MailItem = anwendung.CreateItem(Outlook.OlItemType.olMailItem)
    5. Try
    6. neueNachricht.To = Hauptempfänger
    7. neueNachricht.CC = CC_string
    8. neueNachricht.Subject = strSubject
    9. Clipboard.SetText(IO.File.ReadAllText("C:\Users\user1\AppData\Roaming\Microsoft\Signatures\user1.htm", System.Text.Encoding.Default))
    10. neueNachricht.HTMLBody = strHtmlBody
    11. neueNachricht.HTMLBody = strHtmlBody & vbCrLf & vbCrLf & CType(myData.GetData(GetType(String)), String)
    12. neueNachricht.Display()
    13. neueNachricht.Send()
    14. Catch ex As Exception
    15. End Try
    16. anwendung.Quit()
    17. Me.Close()
    18. End Sub


    Zum anderen wird die mail lediglich in den Postausgang verschoben aber nicht versendet. Was kann ich machen, dass sie versendet wird ? Ich benutze Outlook 2013.

    Für Eure Hilfe wäre ich sehr dankbar.
    Du darfst nicht .Body, sondern .HtmlBody verwenden.
    Bilder gehen nur mit HTML.
    Und natürlich deinen Body entsprechend als HTML formatieren.

    Dann musst du dein Bild zum einen als hidden attachment anhängen.

    Visual Basic-Quellcode

    1. .Attachments.Add ImageFile, 1, 0
    ImageFile ist der Pfad zum Image.
    Dann kannst du das hidden Image im HTML einbetten:

    Visual Basic-Quellcode

    1. ImageText = "<br><img src='cid:" & ImageFilename & "'><br></HTML>"
    ImageFileName ist der Filename (ohne Pfad) deines versteckten Anhangs.
    Diesen ImageText kannst du an geeigneter Stelle in deinen HTML-Body integrieren.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --