Wie add default-Signatur in Outlook
Schreibe ich ein VBA script in Access erstellt und auto-füllt ein paar Dutzend E-Mails. Es war glatt Codierung so weit, aber ich bin neu in Outlook. Nach der Erstellung des mailitem-Objekt, wie füge ich die Standard-Signatur an die E-Mail?
-
Wäre dies die Standard-Signatur, die automatisch Hinzugefügt werden, beim erstellen einer neuen E-Mail.
-
Im Idealfall würde ich gerne, nur
ObjMail.GetDefaultSignature
, aber ich kann nichts finden, wie es ist. -
Derzeit bin ich mit der Funktion unten (gefunden anderswo im internet) und verweisen auf den genauen Pfad & mit dem Namen der htm-Datei. Aber dies wird von mehreren Leuten benutzt wird und Sie können einen anderen Namen für Ihren Standard-HTML-Signatur-Datei. Dies funktioniert ja, aber es ist nicht ideal:
Function GetBoiler(ByVal sFile As String) As String 'Dick Kusleika 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
Genannt(mit
getboiler(SigString = "C:\Users\" & Environ("username") & "\AppData\Roaming\Microsoft\Signatures\Mysig.txt")
)
Bearbeiten
Dank JP (siehe Kommentare), merke ich, dass die Standard-Signatur zeigt sich auf den ersten, aber es verschwindet, wenn ich HTMLBody verwenden, um eine Tabelle hinzuzufügen, um die E-Mail. Also ich denke, meine Frage ist jetzt: Wie kann ich die Standard-Signatur und zeigen Sie noch eine html-Tabelle?
Sub X()
Dim OlApp As Outlook.Application
Dim ObjMail As Outlook.MailItem
Set OlApp = Outlook.Application
Set ObjMail = OlApp.CreateItem(olMailItem)
ObjMail.BodyFormat = olFormatHTML
ObjMail.Subject = "Subject goes here"
ObjMail.Recipients.Add "Email goes here"
ObjMail.HTMLBody = ObjMail.Body & "HTML Table goes here"
ObjMail.Display
End Sub
Danke für den Tipp. Das führte mich zu den xtremevbtalk.com/archive/index.php/t-103235.html, wo jemand sagte, es war nicht möglich, die mit der Automatisierung. Ich bin mir sicher, dass es einen Weg gibt obwohl. Ich bin nicht die erste mit dieser Frage.
Haben Sie eine Standardsignatur für neue Nachrichten? Ich mache, wenn ich eine Nachricht programmgesteuert es wird automatisch gefüllt mit der Standard-Signatur.
Ja ich habe eine Signatur und es ist als Standard-Signatur für neue Nachrichten im Extras-Menü. Außer es ist nicht das Auffüllen der E-mail-Objekt wenn ich das erstellen von automation. Wenn Ihr mir sagen könnt, wie ich höre.
Getestet habe ich dies mit
Outlook.CreateItem(olMailItem).Display
im Direktfenster. Mit einer Standard-Signatur, die Meldung mit der Signatur schon da. Können Sie versuchen, den gleichen test?
InformationsquelleAutor PowerUser | 2012-01-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den folgenden code erstellen Sie eine outlook-Nachricht & halten Sie dann die auto-Signatur
.HTMLbody
, nicht.body
. Einfach und direkt.Danke, das hat funktioniert für was ich war daran interessiert zu! Jeder zukünftige Nutzer, stellen Sie sicher, wenn Sie wollen, dass die
.HTMLbody
ändern, um es an beiden Orten.Vielen Dank - ich bin versucht zu zählen die Anzahl der Standard-Signatur-Dateien.. also das funktioniert. .Anzeige folgte .Zählen und .Schließen Sie bekommt von mir, was ich will, aber es ist eine Art der Darstellung ausgeblendet?
Dies ist arbeiten und ich bin in der Lage, die auto-Signatur in E-Mail, aber irgendwie Unterschrift Hinzugefügt wird, auf die Spitze der E-Mail. kann mir jemand helfen zu erkennen, wie man hinzufügen, dass in das Ende.
wenn Sie verwenden möchten .HTMLbody dies ist keine saubere Lösung breause es erzeugt ungültiges HTML. Die Signatur (OMail.Körper) enthält eine Zeichenkette beginnend mit <html ... und endet mit </html> also kannst du nicht Schreibe einfach deinen text
InformationsquelleAutor Julia Jones
Meine Lösung ist die Anzeige ein leer Nachricht zuerst (mit Standard-Signatur!) und legen Sie die vorgesehene
strHTMLBody
in die bestehendeHTMLBody
.Wenn, wie PowerUser Staaten, die Signatur ist ausgelöscht während der Bearbeitung HTMLBody Sie überlegen, ein speichern der Inhalte
ObjMail.HTMLBody
in variablestrTemp
sofort nachObjMail.Display
und fügen SiestrTemp
danach aber das sollte nicht nötig sein.Ich versuche die
Objmail.GetInspecter.Activate
und es sieht aus wie es tut die gleiche Sache wieObjmail.Display
, so oder so, es zeigt die E-Mail (die ist für mich in Ordnung, da gibt es nicht viel zu schaffen)Ich bin damit einverstanden - ich konnte'tfind einen Weg zu stoppen die E-Mail anzeigen
Ich Schätze, dass diese Antwort (anders als angenommen) war höflich genug, um fügen Sie einen Satz auf die Strategie, die der code verwendet, anstatt nur zu werfen Sie einen code-block, der bei Ihnen keine Erklärung überhaupt. Zugegeben, dies ist ein grundlegendes Beispiel. Aber mit einem einzigen Satz ist alles dauerte es. In der Beschreibung der Strategie vor dem eintauchen in die code ist nur eine gute Kommunikation und gute Manieren.
InformationsquelleAutor Rick van Dam
Dachte, ich würde teilen, wie ich dies erreichen. Nicht zu sicher, wenn es richtig in die Definition von Variablen Sinn, aber es ist klein und leicht zu Lesen, die ist, was ich mag.
Lege ich WMBody .HTMLBody innerhalb des Objekts Outlook.Anwendung OLE.
Hoffe, es hilft jemand.
Dank,
Wes.
InformationsquelleAutor Wesley
Baute ich diesen Ansatz, während die Suche nach gewusst wie: senden einer Nachricht auf einem sich wiederholenden Zeitplan.
Ich fand den Ansatz, wo Sie die Referenz der Inspector-Eigenschaft des erstellten Nachricht nicht fügen Sie die Signatur, die ich wollte (ich habe mehr als ein Konto einrichten in Outlook, mit separaten Signaturen.)
Den Ansatz unten ist ziemlich flexibel und dennoch einfach.
InformationsquelleAutor Mozzis
Outlook fügt die Signatur der neuen unveränderten Nachrichten (die Sie nicht ändern sollten dem Körper vor, dass), wenn Sie anrufen
MailItem.Display
(die bewirkt, dass die Nachricht auf dem Bildschirm angezeigt werden) oder wenn Sie Zugriff auf dieMailItem.GetInspector
Eigenschaft - Sie nicht haben, etwas zu tun mit dem zurückgegebenen Objekt-Inspektor, aber Outlook wird das Auffüllen der Nachricht die Signatur.Nachdem die Signatur Hinzugefügt wird, Lesen Sie die
HTMLBody
- Eigenschaft, und führen Sie Sie mit dem HTML-Zeichenfolge, die Sie festlegen möchten. Beachten Sie, dass Sie nicht einfach verketten von 2 HTML-strings - die Saiten müssen zusammengeführt werden. E. g. wenn Sie möchten, legen Sie die Zeichenfolge an der Spitze der HTML-Körper, der Blick für die"<body"
substring, dann finden Sie das nächste vorkommen von ">" (dieser kümmert sich um die<body>
element mit Attribute), dann legen Sie Ihre HTML-string nach, dass ">".Outlook Objekt Modell nicht aussetzen Signaturen überhaupt.
Auf einen Allgemeinen Hinweis, der name ist die Signatur gespeichert, die im Konto-Profil-Daten zugänglich über die IOlkAccountManager Extended-MAPI-Schnittstelle. Da die Schnittstelle Extended MAPI, es kann nur zugegriffen werden, die mit C++ oder Delphi. Sie können sehen, die Schnittstelle und die Daten in OutlookSpy wenn Sie auf die
IOlkAccountManager
Taste.Sobald Sie den Signatur-Namen, können Sie die HTML-Datei aus dem Datei-system (beachten Sie, dass der Ordner-name (Signaturen in Englisch) lokalisiert ist.
Beachten Sie auch, dass, wenn die Signatur Bilder enthält, müssen diese ebenfalls Hinzugefügt werden, um die Nachricht als Anhänge und die
<img>
- tags in der Signatur/Nachrichtentext angepasst, um diesrc
Attribut der Anlagen eher als ein Unterordner der Signaturen-Ordner, wo die Bilder gespeichert werden.Es wird auch Ihre Verantwortung sein, zu verschmelzen-die HTML-Stile, die in der Signatur HTML-Datei mit den Stilen der Nachricht selbst.
Wenn mit Erlösung ist eine option, die Sie verwenden können, seine RDOAccount Objekt (zugänglich in jeder Sprache, einschließlich VBA). Neue Nachricht-Signatur-name ist gespeichert in der
0x0016001F
Eigenschaft, Antwort Signatur ist in0x0017001F
.Sie können auch die RDOAccount.
ReplySignature
undNewSignature
Eigenschaften.Erlösung macht auch RDOSignature.
ApplyTo
Methode, die einen Zeiger auf die RDOMail - Objekt und fügt die Signatur an die angegebene Speicherort korrekt Zusammenführen der Bilder und die styles:BEARBEITEN: Juli 2017,
MailItem.GetInspector
im Outlook 2016 nicht mehr fügt die Signatur. NurMailItem.Display
tut.InformationsquelleAutor Dmitry Streblechenko
Ich habe eine Community-Wiki-Antwort, denn ich konnte es nicht geschaffen haben, ohne PowerUser Forschung und die Hilfe, die in früheren Kommentaren.
Nahm ich PowerUser ist
Sub X
und Hinzugefügtnach jeder Anweisung. Von dieser entdeckte ich die Signatur nicht innerhalb von
.HTMLBody
bis nachObjMail.Display
- und auch nur dann, wenn ich noch nicht alles zugegeben, um den Körper.Ging ich zurück zum PowerUser die frühere Lösung, die verwendet werden
C:\Users\" & Environ("username") & "\AppData\Roaming\Microsoft\Signatures\Mysig.txt")
. PowerUser war unglücklich, weil er wollte, dass seine Lösung für andere zu arbeiten, wer würde haben unterschiedliche Signaturen.Meine Signatur ist im gleichen Ordner und ich finde keine option um dies zu ändern Ordner. Ich habe nur eine Signatur, so dass durch das Lesen die einzige HTM-Datei in diesem Ordner, erhielt ich mein nur/Standard-Signatur.
Erstellte ich eine HTML-Tabelle eingefügt und es in die Signatur unmittelbar nach dem <body> - element, und legen Sie die html-Körper zur Folge haben. Ich schickte die E-Mail an mich und das Ergebnis war durchaus akzeptabel, vorausgesetzt, Sie wie meine Formatierung, die ich aufgenommen, um zu überprüfen, dass ich konnte.
Meiner modifizierten Unterprogramm:
Da beide PowerUser und ich gefunden haben unsere Unterschriften in
C:\Users\" & Environ("username") & "\AppData\Roaming\Microsoft\Signatures
ich schlage vor, dies ist der standard-Speicherort für jede Outlook-installation. Kann diese Standardeinstellung geändert werden? Ich kann nicht finden, etwas zu suggerieren, was es kann. Der obige code klar braucht es eine gewisse Entwicklung, aber es hat erreichen PowerUser Ziel der Schaffung eines E-Mail-Text mit einem HTML-Tabelle über eine Signatur.Ich bin mir nicht sicher was du meinst mit "direkter". Dieser code erstellt eine Tabelle über eine Signatur, die ist, was Sie wollte. Ich Stimme zu es ist nur ein dummy-Tabelle, aber ich weiß nicht, wo der eigentliche Tisch ist, zu kommen.
InformationsquelleAutor
Ich einen Weg herausgefunden, aber es ist vielleicht zu schlampig für die meisten. Ich habe eine einfache Db und ich will, dass es in der Lage sein zum generieren von E-Mails für mich, also hier die down and dirty Lösung, die ich verwendet:
Fand ich, dass der Anfang des body-Textes ist der einzige Ort, sehe ich die "
<div class=WordSection1>
" in den HTMLBody einer neuen E-Mail, so habe ich nur eine einfache ersetzen, ersetzen"
<div class=WordSection1><p class=MsoNormal><o:p>
"mit
"<div class=WordSection1><p class=MsoNormal><o:p>" & sBody
wo sBody ist der Körper, der Inhalt will ich eingefügt. Scheint soweit zu funktionieren.
InformationsquelleAutor Eliot K
Ich brauche 50 rep, um einen Kommentar gegen die Signatur-Option fand ich sehr hilfreich, jedoch hatte ich ein Problem mit Bildern, die nicht korrekt angezeigt, so hatte ich, eine Arbeit zu finden um. Dies ist meine Lösung:
@Morris Maynard Antwort als Basis https://stackoverflow.com/a/18455148/2337102 ich musste dann gehen Sie durch die folgenden:
Hinweise:
Sichern .htm-Datei, bevor Sie beginnen, kopieren & einfügen in eine sekundäre Ordner
Arbeiten Sie mit der
SignatureName.htm
und dieSignatureName_files Folder
Brauchen Sie nicht
HTML
Erfahrung, die Dateien öffnen sich in einem editing-Programm wie Notepad oder Notepad++ oder Ihre angegebene HTML-ProgrammNavigieren Sie zu Ihrer Signatur-Datei Speicherort (standard sollte sein
C:\Users\"username"\AppData\Roaming\Microsoft\Signatures
)Öffnen Sie die
SignatureName.htm
- Datei in einem text - /HTML-editor (Rechtsklick auf die Datei, "Bearbeiten" mit Programm")Verwenden
Ctrl+F
und geben Sie.png
;.jpg
oder wenn Sie nicht wissen, Ihre Bild-Typ, verwendenimage001
Sie sehen etwas wie:
src="signaturename_files/image001.png"
Müssen Sie ändern, um die gesamte Adresse der Speicherort des Bildes
C:\Users\YourName\AppData\Roaming\Microsoft\Signatures\SignatureNameFolder_files\image001
oder
src="E:\location\Signatures\SignatureNameFolder_files\image001.png"
Speichern Sie Ihre Datei (überschreiben, Sie hatte natürlich gesichert das original)
Zurück zu Outlook, und Öffnen Sie eine Neue E-Mail-Element, fügen Sie Ihre Unterschrift. Ich erhielt eine Warnung, dass die Dateien geändert wurden, habe ich auf ok geklickt, ich musste das tun dies zweimal, dann einmal auf den "Signaturen Bearbeiten-Menü".
Some of the files in this webpage aren't in the expected location. Do you want to download them anyway? If you're sure the Web page is from a trusted source, click Yes."
Führen Sie Ihr Makro-Ereignis, die Bilder sollten jetzt angezeigt werden.
Kredit
MrExcel - VBA-code-Signatur-code Fehler: http://bit.ly/1gap9jY
vielen Dank für die Kommentare. Es sei denn, Sie wissen, HTML-code, es ist am besten, wenn Sie legen Sie die Bilder während der Erstellung der Signatur in OL. Einige meiner sigs haben Sie, andere nicht. Meine nicht-Standard-sig hat die Bilder, die ist, warum ich war auf der Jagd für eine Lösung. 🙂 Deine Frage ist die am häufigsten verwendete und gerichtet, um für die Menschen zu wollen, Signaturen hinzufügen, mithilfe von VBA. Ich dachte, es kann durchaus sinnvoll sein, für einige. 🙂 Ich hoffe, es hilft anderen, die kommen auf der Suche. Haben Sie einen großen Tag!
InformationsquelleAutor MrsAdmin
Meisten anderen Antworten sind einfach die Verkettung zu Ihren HTML-body mit den HTML-Signatur. Dies bedeutet jedoch nicht, arbeiten mit Bildern, und es stellt sich heraus, es ist eine "standard" - Weg, dies zu tun.Eins
Microsoft Outlook-pre-2007, die konfiguriert ist, mit WordEditor die editor, und Microsoft Outlook 2007 und darüber hinaus, mit einem leicht cut-down-version der Word-Editor zum Bearbeiten von E-Mails. Das heißt, wir können die Microsoft Word-Dokument-Objekt-Modell, um änderungen an der E-Mail.
Microsoft Outlook 2007 Programming (S. Mosher)> Kapitel 17 Arbeiten mit Element Körper: Arbeiten mit Outlook-Signaturen
InformationsquelleAutor Birdie
Ich mag Mozzi's Antwort fand aber, dass es nicht beibehalten haben die Standard-Schriftarten, die Benutzer-spezifisch sind. Der text erschien in einer system-schriftart als normaler text. Der code unten behält der Benutzer die Lieblings-Schriftarten, und machen es nur ein wenig länger. Es basiert auf Mozzi's Ansatz, verwendet einen regulären Ausdruck, um ersetzen Sie die Standard-text und stellen dem Benutzer ausgewählte text, wo es hingehört, durch die Verwendung von GetInspector.WordEditor. Ich fand, dass der Aufruf von GetInspector hat nicht füllen Sie den HTMLbody wie dimitry streblechenko sagt oben in diesem thread, zumindest nicht in Office 2010, damit Sie das Objekt immer noch angezeigt in meinem code. Im Vorbeigehen, beachten Sie bitte, dass es wichtig ist, dass das MailItem erstellt wird, als Objekt, nicht als eine einfache MailItem - siehe hier für mehr. (Oh, und sorry an alle von verschiedenen Geschmack, aber ich bevorzuge mehr beschreibende Variablen-Namen, so dass ich finden kann, Routinen!)
InformationsquelleAutor Neil Dunlop
Oft wird diese Frage im Kontext von Ron de Bruin -
RangeToHTML
- Funktion, die erstellt eine HTML -PublishObject
aus einerExcel.Range
Extrakte, die über FSO, und fügt den resultierenden stream HTML in der E-MailHTMLBody
. In doing so, das entfernt die Standard-Signatur (dieRangeToHTML
Funktion ist eine Hilfsfunktion, dieGetBoiler
versucht, legen Sie die Standard-Signatur).Leider schlecht dokumentiert
Application.CommandBars
Methode ist nicht per Outlook:Wird es werfen eine Laufzeit 6158:
Aber wir können immer noch nutzen Sie die
Word.Document
die zugänglich ist über dasMailItem.GetInspector
Methode, die wir tun können, so etwas zu kopieren & einfügen der Auswahl von Excel zu Outlook-E-Mail-Körper konservieren Sie Ihre Standard-Signatur (wenn es eine ist).Beachten Sie, dass in einigen Fällen kann dies nicht perfekt zu bewahren, die Spaltenbreite oder in einigen Fällen die Zeilenhöhe, und während es auch kopieren, Formen und andere Objekte im Excel-Bereich, kann dies auch dazu führen, einige funky Ausrichtung Probleme, aber für einfache Tabellen und Excel-Bereiche, es ist sehr gut:
InformationsquelleAutor David Zemens