Hallo,
bei versenden von Mail mit Signatur fehlt das Bild.
Es erscheint kurz und ist dann weider weg.
Gruß
Johann
Fehlt es auch beim Empfänger ?
Wenn nicht könnte es ja sein, dass Outlook Platz sparen will und Bilder beim versenden nicht dauerhaft speichert......
Hallo,
das Bild ist vollkommen weg. Kommt auch nicht beim Empfänger an.
Seltsam ist das es sich um die gleiche Signature handelt.
Neue Mail über Outlock erstellt: Signatur mit Bild ist da.
Neue Mail über Acc erstellt: Signatur ist da, Bild erscheint kurz, dann steht da kann nicht dargestellt werden.
System Win7, Access 2010 64bit.
Gruß
Johann
Hallo,
die Bilder , die in Outlook-Signaturen eingebaut sind, können je nach verwendetem Editor (Outlook/Optionen/Signaturen/Bearbeiten/Bild einfügen oder Einfügen des Bildes mittels Drag&Drop oder Word als Email-Editor) unterschiedlich behandelt werden. Bei Word z. B. wird im Signatures-Unterverzeichnis ein weiteres Verzeichnis angelegt, in dem die Bilddatei dann gespeichert wird. Bei "Bild einfügen" kommt in der Signatur nur ein Link zum Einsatz, der auf die Original-Bilddatei verweist. Vermutlich liegt der Hund hier im Pfeffer (oder ist der Hase begraben ;-) ) , dass das Bild beim "Access" (wie wird denn die Mail damit überhaupt erstellt?) im weiteren Verlauf nicht mehr gefunden wird.
Hallo,
folgende Routine erstellt die Mail:
Sub EmailsendenHTML(MailAdresse, ZwDatei, ZwBetreff, ZwNachricht, ZwSignatur)
'ZwDatei = Dateianhang, ZwBetreff = Betreff, ZwNachricht = Nachricht, ZwSignatur = ID der Signatur
Dim DB As DAO.Database
Dim Rs As DAO.Recordset
Set DB = CurrentDb
Set Rs = DB.OpenRecordset("Signatur", dbOpenDynaset)
' Tabelle mit Pfad und Dateiname der Signaturen, htm-Dateien
Rs.FindFirst "ID = " & ZwSignatur
If Rs.NoMatch Then
MsgBox ("Tabelle Signatur fehlt oder defekt")
Exit Sub
End If
Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String
Dim SigString As String
Dim Signature As String
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
strbody = ZwNachricht
If IsNull(Rs!signatur) Or Rs!signatur = "" Then
Else
strbody = strbody & "<P class=MsoNormal align=left><SPAN style='FONT-FAMILY: Arial; COLOR: black; FONT-SIZE: 10pt'>"
strbody = strbody & "<IMG style='WIDTH: 111px; HEIGHT: 95px' border=0 hspace=0 alt='' align=baseline src='" & Rs!signatur & "'></SPAN></P>"
End If
SigString = Rs!signatur
If Dir(SigString) <> "" Then
Signature = GetBoiler(SigString)
Else
Signature = ""
End If
On Error Resume Next
'Mail erstellen
With OutMail
.Display
.Subject = ZwBetreff
.To = MailAdresse
'.CC = "test1@test.de" ' nicht benötigt
.Attachments.Add ZwDatei
.HTMLBody = strbody & "<br><br>" & Signature
End With
Set OutApp = Nothing
Set OutMail = Nothing
End Sub
Läuft bis auf das Bild in der Signatur auf Win XP, Acc 2007 und Win 7 Acc 2010 64Bit.
Gruß
Johann
Hallo,
was macht denn "GetBoiler" ? Ich vermute, dass damit die Bilddatei als Text ausgelesen wird.
Checke mal, ob das so gemacht wird und teste, ob die Bilder im png oder jpg-Format vorliegen. Es könnte auch sein, dass ein passender Grafikfilter nicht installiert ist.
Hallo,
deine Vermutung ist richtig.
GetBoiler erstellt die Signatur.
Das Bild ist als jpg vorhanden.
Gruß
Johann
Hallo,
mhmm,
bist Du sicher, dass Du nicht einer Fehlinterpretation aufsitzt?
Wenn es es eine Standard-Signatur (zugewiesene Sig. für das Konto) gibt und Du läßt den Code ablaufen, dann wird zunächst eine neue "leere" Mail, aber MIT der Standard-Signatur erstellt, die Du eben vermutlich kurz siehst. Bei weiteren Verlauf des Codes wird an HTMLBody Dein eigener HMTL-Code , der auf das Bild verweist, zugewiesen, bzw. HTMLBody wird damit überschrieben. D. h. das im Code definierte Bild ist auf irgendeine Art und Weise nicht verwendbar.
Setze mal einen Haltepunkt und durchfahre den Code mit Einzelschritt, prüfe dabei den Inhalt der Variablen. Prüfe auch, ob die Bilddatei manuell im Signatur-Editor eingefügt werden kann.
Hallo Franz,
wenn ich Einzelschritt mache sehe ich das der Pfad richtig eingestellt ist.
Die anderen Felder haben auch den von mir zugedachten Inhalt.
Das Bild läßt sich manuell einfügen. Ich habe es in der Signatur gelöscht und nochmal neu eingefügt.
Richtig ist das erst die Standardsignatur kommt (mit Bild) und danach die aus ACC.
Hier noch der Code von GetBoiler.
Function GetBoiler(ByVal sFile As String) As String
Dim fso As Object
Dim ts As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(sFile).OpenAsTextStream(1, -2)
GetBoiler = ts.readall
ts.Close
End Function
Ach so, in der Anwendung kann der Benutzer aus vorgegebene Signaturen auswählen.
Dises habe ich zu testzwecken deaktiviert.
Gruß
Johann.
Hallo,
ok,
was steht denn in Rs!signatur drin?
Im Code wird dieser Wert als Bild-Datei interpretiert ( ...alt='' align=baseline src='" & Rs!signatur & "'></SPAN></P>"
) und anschliessend als Name einer HTML-Datei, die den eigentlichen Signatur-HTML-Text beinhalten müsste/sollte (der dann in der Variablen "Signature" stehen müsste) ..
Das passt nicht zusammen.
Hallo Franz,
in RS!Signatur steht:
C:\Dokumente und Einstellungen\Budde\Anwendungsdaten\Microsoft\Signatures\Borkum.htm
also der Pfad und Dateiname für die Signatur Text und Bild.
Wäre schön wenn du mir sagen könntest was ich falsch mache.
Gruß
Johann
Hallo,
dann brauchst Du zunächst nicht den extra Link auf rs!signatur im Code:
If IsNull(Rs!signatur) Or Rs!signatur = "" Then
Else
strbody = strbody & "<P class=MsoNormal align=left><SPAN style='FONT-FAMILY: Arial; COLOR: black; FONT-SIZE: 10pt'>"
strbody = strbody & "<IMG style='WIDTH: 111px; HEIGHT: 95px' border=0 hspace=0 alt='' align=baseline src='" & Rs!signatur & "'></SPAN></P>"
End If
Wenn es dann immer noch nicht geht, dann greift vermutlich mein eingangs erwähnter Hinweis auf die unterschiedlichen Codierungen des HTML-Formates (der HTML-Signatur) durch die unterschiedichen HTML-Editoren..
Erstell dazu testweise eine neue Signatur direkt in Outlook unter Signaturen/Hinzufügen -
bearbeiten und Rechtsklick/Bild einfügen. Nimm dazu NICHT Word..
Danach testet Du den Code mit dieser neu erstellten Signatur..
Hallo Franz und natürlich alle anderen,
wenn ich den if weglasse bekomme ich das gleiche Ergebnis.
Das Bild ist immer als Link da und dann kann es nicht angezeigt werden.
Eine Signatur ohne Word geht meines Wissens nicht in Office 2007.
Es gab schon mal ein Kontrol wo man das aktivieren/deaktiveren konnte ist jetzt aber nicht mehr da.
Bei meiner konkreten Anforderung unterscheidet sich die Signatur nur im Text.
Wäre es möglich das Bild im Body einzufügen (nicht als Link) und
dann die Signatur ohne Bild dahinter?
Gruß
Johann
Hallo,
ok,
versuch es mal so:
Sub EmailsendenHTML(MailAdresse, ZwDatei, ZwBetreff, ZwNachricht, ZwSignatur)
'ZwDatei = Dateianhang, ZwBetreff = Betreff, ZwNachricht = Nachricht, ZwSignatur = ID der Signatur
Dim DB As DAO.Database
Dim Rs As DAO.Recordset
Set DB = CurrentDb
Set Rs = DB.OpenRecordset("Signatur", dbOpenDynaset) ' Tabelle mit Namen der Signaturen
Rs.FindFirst "ID = " & ZwSignatur
If Rs.NoMatch Then
MsgBox ("Tabelle Signatur fehlt oder defekt")
Exit Sub
End If
Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String
Dim SigString As String
Dim Signature As String
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
strbody = ZwNachricht
'Mail erstellen
With OutMail
.GetInspector.Display
.GetInspector.CommandBars.ActiveMenuBar.Controls("Einfügen").Controls("Signatur").Controls(CStr(Rs!signatur)).Execute
Signature = .HTMLBody
.Subject = ZwBetreff
.To = MailAdresse
'.CC = "test1@test.de" ' nicht benötigt
If Len(ZwDatei) Then .Attachments.Add ZwDatei
.HTMLBody = strbody & "<br><br>" & Signature
End With
Set OutApp = Nothing
Set OutMail = Nothing
End Sub .GetInspector.CommandBars.ActiveMenuBar.Controls("Einfügen").Controls("Signatur").Controls("Test").Execute
Hallo Franz,
das ist es.
Vielen Dank
und Grüße von der Grafschaft Bentheim zum Bodensee.
Johann