Note: The other languages of the website are Google-translated. Back to English

Hogyan lehet automatikusan megváltoztatni az aláírást az Outlook címzettjei alapján?

Alapértelmezés szerint az Outlook beépített funkcióval rendelkezik, amely lehetővé teszi a felhasználók számára az aláírás automatikus megváltoztatását, miközben e-maileket küldenek különböző e-mail fiókokon keresztül. De ezen túl itt bemutatom az aláírás automatikus megváltoztatásának módszerét a különböző címzettek alapján az Outlook Címzett mezőjében.

Az aláírás módosítása a címzettek alapján automatikusan VBA kóddal


Az aláírás módosítása a címzettek alapján automatikusan VBA kóddal

Kérjük, kövesse az alábbi lépéseket, hogy különböző aláírásokat alkalmazzon a megfelelő címzettekre, miközben e-maileket küld az Outlook programban.

1. Először le kell tiltania az automatikus csatolt aláírás funkciót az Outlookban. kérem kattintson filé > Opciók megnyitni Outlook opciók ablak.

2. Ban,-ben Outlook opciók ablak, válassza ki Levél a bal oldali ablaktáblán, majd kattintson a gombra aláírások gombot a Üzenetek írása szakasz. Lásd a képernyőképet:

3. Ban,-ben Aláírások és írószerek párbeszédpanelen lépjen a Válassza ki az alapértelmezett aláírást szakasz alatt E-mail aláírás lapon válassza ki az e-mail fiókot a Email fiók legördülő listából, majd válassza a lehetőséget (Nincs) tól Új üzenetek és a Válaszok / továbbítások legördülő listák. Ismételje meg ezeket a lépéseket, amíg az összes e-mail fiók nincs beállítva (Nincs). Ezután kattintson a OK gombot.

Megjegyzések: Ebben létrehozhatja a szükséges aláírásokat is Aláírások és írószerek párbeszédablak.

4. Kattintson a OK gombra, amikor visszaadja a Outlook opciók ablak.

5. megnyomni a más + F11 billentyűk megnyitásához Microsoft Visual Basic for Applications ablak.

6. Ban,-ben Microsoft Visual Basic for Applications ablakban kattintson duplán ThisOutlookSession a bal oldali ablaktáblán a Kód ablak megnyitásához, és a VBA-kód alatti másolatot az ablakba. Lásd a képernyőképet:

VBA-kód: Az aláírás automatikus módosítása az Outlook címzettjei alapján

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
'Updated by ExtendOffice 2022/08/01
Dim xMailItem As MailItem
Dim xRecipients As Recipients
Dim xRecipient As Recipient
Dim xRcpAddress As String
Dim xSignatureFile, xSignaturePath As String
Dim xFSO As Scripting.FileSystemObject
Dim xDoc As Document
Dim xFindStr As String
On Error Resume Next
Set xFSO = New Scripting.FileSystemObject
If Item.Class <> olMail Then Exit Sub
Set xMailItem = Item
Set xRecipients = xMailItem.Recipients
xSignaturePath = CreateObject("WScript.Shell").SpecialFolders(5) + "\Microsoft\Signatures\"
For Each xRecipient In xRecipients
    If xRecipient.AddressEntry.AddressEntryUserType = olExchangeUserAddressEntry Then
        xRcpAddress = xRecipient.AddressEntry.GetExchangeUser.PrimarySmtpAddress
    Else
        xRcpAddress = xRecipient.AddressEntry.Address
    End If
    Select Case xRcpAddress
        Case "Email Address 1"
            xSignatureFile = xSignaturePath & "aaa.htm"
            Exit For
        Case "Email Address 2", "Email Address 3"
            xSignatureFile = xSignaturePath & "bbb.htm"
            Exit For
        Case "Email Address 4"
            xSignatureFile = xSignaturePath & "ccc.htm"
            Exit For
    End Select
Next
VBA.DoEvents
Set xDoc = xMailItem.GetInspector.WordEditor
xFindStr = "From: " & xMailItem.Recipients.Item(1).Name & " <" & xRcpAddress & ">"
If VBA.InStr(1, xMailItem.Body, xFindStr) <> 0 Then
    xDoc.Application.Selection.HomeKey Unit:=wdStory, Extend:=wdMove
    With xDoc.Application.Selection.Find
        .ClearFormatting
        .Text = xFindStr
        .Execute Forward:=True
    End With
    With xDoc.Application.Selection
        .MoveLeft wdCharacter, 2
        .InsertParagraphAfter
        .MoveDown Unit:=wdLine, Count:=1
    End With
Else
    With xDoc.Application.Selection
        .EndKey Unit:=wdStory, Extend:=wdMove
        .InsertParagraphAfter
        .MoveDown Unit:=wdLine, Count:=1
    End With
End If
xDoc.Application.Selection.InsertFile FileName:=xSignatureFile, Link:=False, Attachment:=False
End Sub

Megjegyzések:

  • 1). A VBA kódban kérjük, cserélje ki aE-mail cím 1/2/3/4”A címzettek bizonyos e-mail címeivel.
  • 2). "aaa.htm""bbb.htm"És"ccc.htm" azok a megadott aláírások, amelyeket elküld a megfelelő címzetteknek.
  • 3). Ebben az esetben az aláírásaaa”Elküldésre kerülE-mail cím 1”, Aláírás„bbb”Elküldésre kerülE-mail cím 2"És"E-mail cím 3", ésE-mail cím 4”Megkapja az aláírással beágyazott e-mailtccc”. Kérjük, változtassa meg őket az Ön igényei szerint.
  • 4). Ha egy e-mailben több címzett is szerepel, a kód csak az első címzettet veszi figyelembe. Ebben az esetben a többi címzett ugyanazzal az aláírással kapja meg az e-maileket, mint az első címzett.

7. Ezután kattintson Eszközök > Referenciák menni Referenciák-Projekt párbeszédablak. A párbeszédpanelen ellenőrizze mind a kettőt Microsoft Word objektumkönyvtár és a Microsoft Scripting Runtime lehetőséget, majd kattintson a gombra OK gomb, lásd a képernyőképet:

8. megnyomni a más + Q gombok a Microsoft Visual Basic for Applications ablak.

Mostantól az e-mail összeállítása és a Küldés gomb megnyomása után a megfelelő aláírás automatikusan be lesz illesztve az e-mail törzsébe a címzett e-mail címe alapján a Címzett mezőbe.


Az aktuális dátum automatikus beszúrása aláírásként, amikor e-mailt küld az Outlook programba:

Ha be szeretné illeszteni az időbélyeget aláírásként az e-mail törzsébe, miközben új e-maileket hoz létre / válaszol / továbbít az Outlook programban, engedélyezheti Adjon hozzá dátum aláírást, amikor új, válaszol és továbbít e-mailt lehetőség Kutools for Outlook hogy elérje. Lásd a képernyőképet:
Töltse le és próbálja ki most (60 napos ingyenes nyomvonal)


Kutools for Outlook - 100 speciális funkciót hoz az Outlookba, és sokkal könnyebbé teszi a munkát!

  • Auto CC / BCC szabályok szerint e-mail küldéskor; Automatikus továbbítás Több e-mail egyedi; Autómatikus válasz csere szerver és további automatikus funkciók nélkül ...
  • BCC figyelmeztetés - üzenet megjelenítése, amikor megpróbál válaszolni az összesre ha az e-mail címed szerepel a BCC listában; Emlékeztessen a hiányzó mellékletekre, és további funkciók emlékeztetnek ...
  • Válasz (minden) az összes melléklettel az e-mail beszélgetésben; Válasz sok e-mailre másodpercek alatt; Automatikus üdvözlet hozzáadása amikor válasz; Dátum hozzáadása a tárgyhoz ...
  • Mellékleteszközök: Az összes levél összes mellékletének kezelése, Automatikus leválasztás, Tömörítsen mindent, Átnevezés, Összes mentése ... Gyorsjelentés, Számolja ki a kiválasztott leveleket...
  • Erőteljes levélszemét szokás szerint; Távolítsa el az ismétlődő leveleket és névjegyeket... Lehetővé teszi, hogy okosabban, gyorsabban és jobban végezze el az Outlook programot.
lövés kutools outlook kutools fül 1180x121
shot kutools outlook kutools plus tab 1180x121
 
A megjegyzések rendezése szerint
Hozzászólások (43)
Még nincs értékelés. Legyen Ön az első, aki értékel!
A weboldal moderátora ezt a megjegyzést minimalizálta
Hogyan viselkedne ez, ha több címzett is van?
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Devansh!
Ha egy e-mailben több címzett is szerepel, a kód csak az elsőnél működik. És minden címzett ugyanazzal az aláírással kapja meg az e-mailt, amelyet az adott személyhez írt.
Ha több címzett esetén különböző aláírásokat szeretne tartalmazni, az e-mailt külön kell elküldeni a különböző címzetteknek. És ehhez egy másik kódra lesz szükség.
A weboldal moderátora ezt a megjegyzést minimalizálta
Helló! Nagyon szép script, de excahnge címekre küldésnél van egy probléma, az xRcpAddress az X400 nevet adja vissza nem az smtp címet, ez lehetetlenné teszi a domain alapján történő kiválasztást. Van erre megoldás?


A javítás kedvéért megváltoztattam a kis- és nagybetűs írásmódot arra az esetre, ha az inStr függvényt használom a levelek tömeges megkülönböztetésére

Ha InStr(xRcpAddress, "@example") Akkor
xSignatureFile = xSignaturePath & "aaa.htm"
Ha véget
A weboldal moderátora ezt a megjegyzést minimalizálta
Ezt az okos szkriptet hozzáadtam az Outlook 2013-hoz, és megfelelően azonosítja és kiválasztja az általam használt különböző e-mail aláírásokat.

Problémám van az egyik grafikával, amely egy aláírás részét képezi. A grafika helyett az „Elküldött tételek” mappa (és a címzett) megjeleníti az e-mailt a mellékelt képernyőképekkel, és a kép letöltése nem működik.

Ha letiltom a szkriptet és manuálisan aláírom, akkor a kimenő e-mail helyes, és a címzett azt kapja, amit akarok. Még érdekesebb, hogy egy másik egyszerűbb aláírásnál, ahol a grafika csak egy egyenes vonal, ez benne van, bár a grafika kissé megváltozott.

A grafika egy 80 KB 5904 x 1024 pixeles PNG fájl, 32 bitmélységgel, és próbálkoztam kisebb méretekkel 10 KB 369 x 64 pixelig, ami nem segített. Az Outlook verzióm 15.0.5189.1000 32Bit Professional Plus 2013 Windows 10 Pro platformon.

Érdeklődnék, hogy tudtok-e megoldást ajánlani erre.
A weboldal moderátora ezt a megjegyzést minimalizálta
Kedves Amanda!
Frissítettük a kódot. Köszönöm, hogy emlékeztettél a hibára.
A weboldal moderátora ezt a megjegyzést minimalizálta
Nagyon szép szkript, de az aláírásomban szereplő képfájlokat nem kézbesítettem megfelelően. Meg tudod oldani ezt a problémát?
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Vysakh!
A kód frissült, és a képprobléma megoldódott. Elnézést a kellemetlenségért.
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Crystal,

mit változtattál a képprobléma megoldása érdekében? A legújabb kódodat használom, és ugyanaz a problémám, mint Amandával.
Kösz
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia,
Bocsánat a hibáért. A VBA ismét frissült, és a képprobléma teljesen megoldódott.
A weboldal moderátora ezt a megjegyzést minimalizálta
A kód mellett a 7. lépés működése is megváltozott. Kérjük, kövesse az utasításokat lépésről lépésre a leállításához.
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia! Ezt szeretném alkalmazni az aláírások megkülönböztetésére belső és külső e-mailek küldésekor. Ezért ahelyett, hogy felismernék bizonyos e-mail címeket, csak a címzett e-mail címe alapján kellene megkülönböztetnem, hogy benne van-e a cégem neve, vagy sem. Meg tudná nekem mondani, hogy mi lenne a kód ebben a konkrét esetben?


(Például ha "belső.htm" aláírással akartam aláírni, amikor a címzett e-mail a "microsoft" karakterláncot tartalmazza, és az "external.htm" aláírást, ha nem tartalmazza a "microsoft" karakterláncot. Ebben az esetben a címek, mint a " jane@microsoft.com”, „tom@microsoft.support.com” és „recruiting@microsoft.europe.com” mind a Microsoft-alkalmazott belső címzettjének tekintendő).

Kösz!!
A weboldal moderátora ezt a megjegyzést minimalizálta
szia Pauli
Kérjük, próbálja ki az alábbi kódot. A kód alkalmazása előtt kérjük, keresse fel a Referenciák párbeszédablak ellenőrzéséhez Microsoft Word objektumkönyvtár dobozban (a mellékelt képen látható módon).

Private Sub Application_ItemSend (ByVal elem mint objektum, Mégse logikai értékként)

'Frissítette ExtendOffice 2020 / 6 / 12

Dim xMailItem mint MailItem

Dim xRecipients mint címzett

Dim xRecipient mint címzett

Dim xRcpAddress As String

Dim xSignatureFile, xSignaturePath karakterláncként

Dim xFSO As Scripting.FileSystemObject

Dim xDoc Dokumentumként

On Error Resume Next

Állítsa be az xFSO = New Scripting.FileSystemObject

Ha Item.Class <> olMail, akkor lépjen ki a Sub-ból

Set xMailItem = Elem

Állítsa be az xRecipients = xMailItem.Recipients

xSignaturePath = CreateObject("WScript.Shell").SpecialFolders(5) + "\Microsoft\Signatures\"

Minden xRecipienthez Az xRecipientsben

Ha xRecipient.AddressEntry.AddressEntryUserType = olExchangeUserAddressEntry akkor

xRcpAddress = xRecipient.AddressEntry.GetExchangeUser.PrimarySmtpAddress

Más

xRcpAddress = xRecipient.AddressEntry.Address

Ha véget

Ha VBA.InStr(VBA.LCase(xRcpAddress), "@microsoft") > 0 Majd "Írja be a karakterláncot dupla idézőjelbe. Ha a címzett e-mail címe tartalmazza ezt a karakterláncot, akkor az alábbi "internal.htm" aláírás lesz hozzárendelve az e-mailhez. Ellenkező esetben az "external.htm" aláírást.

xSignatureFile = xSignaturePath & "belső.htm"

Kilépés

Más

xSignatureFile = xSignaturePath & "külső.htm"

Ha véget

Következő

VBA.DoEvents

Állítsa be az xDoc = xMailItem.GetInspector.WordEditor beállítást

xDoc.Application.Selection.EndKey

xDoc.Application.Selection.InsertParagraphAfter

xDoc.Application.Selection.MoveDown Unit:=wdLine, Count:=1

xDoc.Application.Selection.InsertFile FileName:=xSignatureFile, Link:=False, Attachment:=False

End Sub
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Crystal, lenne egy kérdésem. Amikor külső és belső címzetteknek is küldök e-mailt, hogyan tudom megkülönböztetni a mindig külső aláírást választva? Kösz
A weboldal moderátora ezt a megjegyzést minimalizálta
Lehet, hogy mostanra megtaláltad a megoldást magadnak, vagy már rég felhagytál ezzel a témával, de késztetést érzek, hogy most fejezzem be. Az egyszerű válasz erre a kérdésre:
Szerkessze az If-Else-záradékot (amely különbséget tesz a két aláírás között) a következőre:
Ha VBA.InStr(VBA.LCase(xRcpAddress), "@microsoft") = 0, akkor 'Írja be a karakterláncot dupla idézőjelbe. Ha a címzett e-mail címe tartalmazza ezt a karakterláncot, az alábbi „internal.htm” aláírás lesz hozzárendelve az e-mailhez. Ellenkező esetben rendelje hozzá az "external.htm" aláírást.
xSignatureFile = xSignaturePath & "external.htm"
Kilépés
Más
xSignatureFile = xSignaturePath & "internal.htm"
Ha véget

Mi történik most:
Ha a címzett címek listájából a címzett címe NEM tartalmazza a megadott karakterláncot, használja a külső aláírást, és ne keresse tovább a címzetteket. Ellenkező esetben használja a belső aláírást, és keresse meg a következő címzett címét.
A weboldal moderátora ezt a megjegyzést minimalizálta
Van néhány furcsa viselkedésem a VBA által generált Outlook e-mailekkel. Az aláírás a szándéknak megfelelően hozzáadásra kerül a levélhez, de nem az e-mail alján, hanem a közepén (úgy néz ki, mint az első üres hely). Van valami ötleted, hogy miért és hogyan lehet leküzdeni?
A weboldal moderátora ezt a megjegyzést minimalizálta
Tim, nekem is hasonló problémám van. Ahová a felhasználó utoljára kattint, oda szúrja be a képet. Van valakinek módja annak, hogy erőltesse a képet közvetlenül az aláírás fölé?
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Crystal!
Érdekel az a VBA-kód, amit alább a "pauli"-hoz írtál, de amikor lefuttatom, a következő hibaüzenet generálódik (és az "XDoc as Document" kódsor kiemelésre kerül):
"Fordítási hiba: A felhasználó által megadott típus nincs megadva"
Hogyan tudnám megoldani ezt a problémát?

Köszönöm, Tim
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Crystal!

Érdekel az a VBA-kód, amit alább a "pauli"-hoz írtál, de amikor lefuttatom, a következő hibaüzenet generálódik (és az "XDoc as Document" kódsor kiemelésre kerül):

"Fordítási hiba: A felhasználó által megadott típus nincs megadva"

Hogyan tudnám megoldani ezt a problémát?

Köszönöm!
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Tim! A kód alkalmazása előtt lépjen a Referenciák párbeszédpanelre, hogy ellenőrizze a Microsoft Word objektumkönyvtár dobozban (a mellékelt képen látható módon).
A weboldal moderátora ezt a megjegyzést minimalizálta
Remek forgatókönyv. Köszönjük. Bármilyen módon beillesztheti az aláírást a Küldés az előnézethez gomb megnyomása előtt. Tudom, hogy késleltethetem a küldést, és megnézhetem a kimenő mappában. Jelenleg nem jelenik meg, amíg meg nem nyomom a küldés gombot. Ha nem, van olyan szoftver, amely automatikusan hozzárendeli az aláírást a Kapcsolatfelvétel alapján. Sok éve használunk egy olyan programot, amely remekül működött, de nem működik az Outlook új verzióiban.
A weboldal moderátora ezt a megjegyzést minimalizálta
Ez a szkript nagyszerű és funkcionális ahhoz, amit kerestem. Lehetséges-e megkülönböztetni a kódot, hogy az üzenet új vagy válasz, valamint az e-mail domain? Például külön aláírás kiválasztásához a külső címzetteknek szóló válaszokhoz, illetve a külső címzetteknek szóló új üzenetekhez?
Köszönöm a megosztást.
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Seth! Az alábbi kód megkülönbözteti, hogy az üzenet új vagy egy aláírás beszúrására adott válasz. Manuálisan kell módosítania a "Email cím"És"Válasz e-mail cím" és a megfelelő aláírási neveket a kódban.
Private Sub Application_ItemSend (ByVal elem objektumként, Mégse logikai értékként)
'Frissítette ExtendOffice 2020 / 12 / 24
Dim xMailItem mint MailItem
Dim xRecipients mint címzett
Dim xRecipient mint címzett
Dim xRcpAddress As String
Dim xSignatureFile, xSignaturePath karakterláncként
Dim xFSO As Scripting.FileSystemObject
Dim xDoc Dokumentumként
On Error Resume Next
Állítsa be az xFSO = New Scripting.FileSystemObject
Ha Item.Class <> olMail, akkor lépjen ki a Sub-ból
Set xMailItem = Elem
Állítsa be az xRecipients = xMailItem.Recipients
xSignaturePath = CreateObject("WScript.Shell").SpecialFolders(5) + "\Microsoft\Signatures\"
If InStr(xMailItem.Subject, "RE: ") <> 1 Akkor
Minden xRecipienthez Az xRecipientsben
Ha xRecipient.AddressEntry.AddressEntryUserType = olExchangeUserAddressEntry akkor
xRcpAddress = xRecipient.AddressEntry.GetExchangeUser.PrimarySmtpAddress
Más
xRcpAddress = xRecipient.AddressEntry.Address
Ha véget
Válassza a Case xRcpAddress lehetőséget
eset "E-mail cím 1"
xSignatureFile = xSignaturePath & "aaa.htm"
Kilépés
eset "E-mail cím 2""E-mail cím 3"
xSignatureFile = xSignaturePath & "bbb.htm"
Kilépés
eset "E-mail cím 4"
xSignatureFile = xSignaturePath & "ccc.htm"
Kilépés
Vége kiválasztása
Következő
Más
Minden xRecipienthez Az xRecipientsben
Ha xRecipient.AddressEntry.AddressEntryUserType = olExchangeUserAddressEntry akkor
xRcpAddress = xRecipient.AddressEntry.GetExchangeUser.PrimarySmtpAddress
Más
xRcpAddress = xRecipient.AddressEntry.Address
Ha véget
Válassza a Case xRcpAddress lehetőséget
"b" eset
xSignatureFile = xSignaturePath & "111.htm" '111.htm az aláírás neve, amelyet be kell szúrni, amikor válaszol a "Válasz e-mail cím 1"
Kilépés
eset "Válasz e-mail címe 2""Válasz e-mail címe 3"
xSignatureFile = xSignaturePath & "222.htm"
Kilépés
eset "Válasz e-mail címe 4"
xSignatureFile = xSignaturePath & "333.htm"
Kilépés
Vége kiválasztása
Következő
Ha véget
VBA.DoEvents
Állítsa be az xDoc = xMailItem.GetInspector.WordEditor beállítást
xDoc.Application.Selection.EndKey
xDoc.Application.Selection.InsertParagraphAfter
xDoc.Application.Selection.MoveDown Unit:=wdLine, Count:=1
xDoc.Application.Selection.InsertFile FileName:=xSignatureFile, Link:=False, Attachment:=False
End Sub
A weboldal moderátora ezt a megjegyzést minimalizálta
Ez a kód egészen addig működött, amíg újra nem indítottam a számítógépemet. Amikor újra megnyitom az alt+F11 billentyűkombinációt, az összes kód ugyanott van, de ha e-mailt küldök, csak aláírás nélkül küldi el. figyelmeztető üzenet.
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Ivan! A problémát az okozza, hogy az Excel letiltotta a Makró opciót. A gombra kattintva be kell lépnie az Outlook Beállítások ablakába filé > Opciók. Az Outlook opciók ablakban kattintson Trust Center a bal oldali ablaktáblán, majd kattintson a gombra Trust Center beállítások gomb. Ban,-ben Trust Center ablakban kattintson Makróbeállítások a bal oldali ablaktáblában, majd válassza ki a lehetőséget Engedélyezze az összes makrót rádió gombot, és ellenőrizze a Alkalmazza a makró biztonsági beállításait a telepített bővítményekre doboz. Lásd alább a mellékelt képernyőképet.
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Crystal!
Lenne egy kérdésem az alábbi forráskóddal kapcsolatban.
Belső aláírást csak bizonyos e-mail címzetteknek szeretnék küldeni (30), amint újabb e-mail címet ad hozzá, a külső aláírást kell használni.
Tudsz segíteni a kérésemmel?
Sok köszönet előre.
A weboldal moderátora ezt a megjegyzést minimalizálta
Több e-mail fiókot is beállítottam az Outlookban, és beállítottam a szkriptet, hogy különböző aláírásokat küldjek e-mailben a belső és külső e-mailekhez.

Hogyan módosíthatom a szkriptet úgy, hogy csak akkor küldje el ezeket az aláírásokat, ha a jweaver@andrewslogistics.com címről küldök?

Más szóval, nem szeretném elküldeni ezeket az aláírásokat, ha nem jweaver@andrewslogistics.com e-mail címről küldök.

Köszönöm,
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Jeff Weaver!
A következő VBA-kód úgy módosult, hogy beszúrja ezeket az aláírásokat, amikor csak egy megadott e-mail fiókból küld e-maileket. Kérjük, próbálja ki. remélem tudok segíteni.
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
'Updated by ExtendOffice 2022/06/10
Dim xMailItem As MailItem
Dim xRecipients As Recipients
Dim xRecipient As Recipient
Dim xRcpAddress As String
Dim xSignatureFile, xSignaturePath As String
Dim xFSO As Scripting.FileSystemObject
Dim xDoc As Document
On Error Resume Next
Set xFSO = New Scripting.FileSystemObject
If Item.Class <> olMail Then Exit Sub
Set xMailItem = Item
If xMailItem.SendUsingAccount.SmtpAddress <> "jweaver@andrewslogistics.com" Then Exit Sub 'The email account you send emails from
Set xRecipients = xMailItem.Recipients
xSignaturePath = CreateObject("WScript.Shell").SpecialFolders(5) + "\Microsoft\Signatures\"
For Each xRecipient In xRecipients
    If xRecipient.AddressEntry.AddressEntryUserType = olExchangeUserAddressEntry Then
        xRcpAddress = xRecipient.AddressEntry.GetExchangeUser.PrimarySmtpAddress
    Else
        xRcpAddress = xRecipient.AddressEntry.Address
    End If
    Select Case xRcpAddress
        Case "Email Address 1"
            xSignatureFile = xSignaturePath & "aaa.htm"
            Exit For
        Case "Email Address 2", "Email Address 3"
            xSignatureFile = xSignaturePath & "bbb.htm"
            Exit For
        Case "Email Address 4"
            xSignatureFile = xSignaturePath & "ccc.htm"
            Exit For
    End Select
Next
VBA.DoEvents
Set xDoc = xMailItem.GetInspector.WordEditor
xDoc.Application.Selection.EndKey
xDoc.Application.Selection.InsertParagraphAfter
xDoc.Application.Selection.MoveDown Unit:=wdLine, Count:=1
xDoc.Application.Selection.InsertFile FileName:=xSignatureFile, Link:=False, Attachment:=False
End Sub
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Crystal! Ugyanaz a problémám, mint Tim (#33997) és Greg (#34358) fent hivatkozva, de nem látom a megoldást. Az aláírás ott jelenik meg az e-mailemben, ahol utoljára kattintok, mielőtt megnyomnám a „Küldés” gombot, így gyakran az e-mail közepén jelenik meg. Valami segítség/megoldás?

Köszönöm!

Eric
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Eric Anderson!
Köszönjük a visszajelzést. A kód frissítése megtörtént, és a probléma megoldódott. Kérjük, próbálja ki.
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
'Updated by ExtendOffice 2022/6/24
Dim xMailItem As MailItem
Dim xRecipients As Recipients
Dim xRecipient As Recipient
Dim xRcpAddress As String
Dim xSignatureFile, xSignaturePath As String
Dim xFSO As Scripting.FileSystemObject
Dim xDoc As Document
On Error Resume Next
Set xFSO = New Scripting.FileSystemObject
If Item.Class <> olMail Then Exit Sub
Set xMailItem = Item
Set xRecipients = xMailItem.Recipients
xSignaturePath = CreateObject("WScript.Shell").SpecialFolders(5) + "\Microsoft\Signatures\"
For Each xRecipient In xRecipients
    If xRecipient.AddressEntry.AddressEntryUserType = olExchangeUserAddressEntry Then
        xRcpAddress = xRecipient.AddressEntry.GetExchangeUser.PrimarySmtpAddress
    Else
        xRcpAddress = xRecipient.AddressEntry.Address
    End If
    Debug.Print xRcpAddress
    Select Case xRcpAddress
        Case "464653358@qq.com"
            xSignatureFile = xSignaturePath & "aaa.htm"
            Exit For
        Case "siluvia@extendoffice.com", "happy.xuebi@163.com"
            xSignatureFile = xSignaturePath & "bbb.htm"
            Exit For
        Case "happysiluvia@gmail.com"
            xSignatureFile = xSignaturePath & "ccc.htm"
            Exit For
    End Select
Next
VBA.DoEvents
Set xDoc = xMailItem.GetInspector.WordEditor
xDoc.Application.Selection.EndKey Unit:=wdStory, Extend:=wdMove
xDoc.Application.Selection.InsertParagraphAfter
xDoc.Application.Selection.MoveDown Unit:=wdLine, Count:=1
xDoc.Application.Selection.InsertFile FileName:=xSignatureFile, Link:=False, Attachment:=False
End Sub
A weboldal moderátora ezt a megjegyzést minimalizálta
Jó napot,

Quand je réponds à des mails, la signature automatique s'insère tout en bas, mais j'aimerais qu'elle s'insère en bas de mon message à moi.

Van megoldása?

Lélian
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia ALEMPS LÉLIAN.
A VBA kód frissült. Köszönjük a visszajelzést. Kérjük, próbálja ki.

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
'Updated by ExtendOffice 2022/08/01
Dim xMailItem As MailItem
Dim xRecipients As Recipients
Dim xRecipient As Recipient
Dim xRcpAddress As String
Dim xSignatureFile, xSignaturePath As String
Dim xFSO As Scripting.FileSystemObject
Dim xDoc As Document
Dim xFindStr As String
On Error Resume Next
Set xFSO = New Scripting.FileSystemObject
If Item.Class <> olMail Then Exit Sub
Set xMailItem = Item
Set xRecipients = xMailItem.Recipients
xSignaturePath = CreateObject("WScript.Shell").SpecialFolders(5) + "\Microsoft\Signatures\"
For Each xRecipient In xRecipients
    If xRecipient.AddressEntry.AddressEntryUserType = olExchangeUserAddressEntry Then
        xRcpAddress = xRecipient.AddressEntry.GetExchangeUser.PrimarySmtpAddress
    Else
        xRcpAddress = xRecipient.AddressEntry.Address
    End If
    Select Case xRcpAddress
        Case "Email Address 1"
            xSignatureFile = xSignaturePath & "aaa.htm"
            Exit For
        Case "Email Address 2", "Email Address 3"
            xSignatureFile = xSignaturePath & "bbb.htm"
            Exit For
        Case "Email Address 4"
            xSignatureFile = xSignaturePath & "ccc.htm"
            Exit For
    End Select
Next
VBA.DoEvents
Set xDoc = xMailItem.GetInspector.WordEditor
xFindStr = "From: " & xMailItem.Recipients.Item(1).Name & " <" & xRcpAddress & ">"
If VBA.InStr(1, xMailItem.Body, xFindStr) <> 0 Then
    xDoc.Application.Selection.HomeKey Unit:=wdStory, Extend:=wdMove
    With xDoc.Application.Selection.Find
        .ClearFormatting
        .Text = xFindStr
        .Execute Forward:=True
    End With
    With xDoc.Application.Selection
        .MoveLeft wdCharacter, 2
        .InsertParagraphAfter
        .MoveDown Unit:=wdLine, Count:=1
    End With
Else
    With xDoc.Application.Selection
        .EndKey Unit:=wdStory, Extend:=wdMove
        .InsertParagraphAfter
        .MoveDown Unit:=wdLine, Count:=1
    End With
End If
xDoc.Application.Selection.InsertFile FileName:=xSignatureFile, Link:=False, Attachment:=False
End Sub
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Crystal,

Ugyanúgy, mint a többiek ebben a szálban, szeretném, ha az aláírásom alapértelmezés szerint külső aláírás lenne, ha nem belső e-mail címek találhatók a címzett vagy a cc sorban, és belső aláírásra váltanék, ha csak belső e-mail címekről van szó. Ehhez kombináltam az Ön legfrissebb kódját (válasz Leliannak) a Random_Guest Danielának adott válaszával (alapértelmezés szerint a külső aláírás). Az eredmény az, hogy amikor csak belső e-mail címekre válaszolok, az aláírás tökéletesen működik; azonban amikor a külső aláírásomat behúzzák, az aláírást az e-mail lánc aljára dobja, nem pedig az általam küldött e-mail végére. Tudnátok tanácsot adni, hogyan lehet korrigálni? Az alábbi kódot mellékeltem:

Private Sub Application_ItemSend (ByVal elem mint objektum, Mégse logikai értékként)
'Frissítette ExtendOffice 2022 / 08 / 01
Dim xMailItem mint MailItem
Dim xRecipients mint címzett
Dim xRecipient mint címzett
Dim xRcpAddress As String
Dim xSignatureFile, xSignaturePath karakterláncként
Dim xFSO As Scripting.FileSystemObject
Dim xDoc Dokumentumként
Dim xFindStr As String
On Error Resume Next
Állítsa be az xFSO = New Scripting.FileSystemObject
Ha Item.Class <> olMail, akkor lépjen ki a Sub-ból
Set xMailItem = Elem
Állítsa be az xRecipients = xMailItem.Recipients
xSignaturePath = CreateObject("WScript.Shell").SpecialFolders(5) + "\Microsoft\Signatures\"
Minden xRecipienthez Az xRecipientsben
Ha xRecipient.AddressEntry.AddressEntryUserType = olExchangeUserAddressEntry akkor
xRcpAddress = xRecipient.AddressEntry.GetExchangeUser.PrimarySmtpAddress
Más
xRcpAddress = xRecipient.AddressEntry.Address
Ha véget
Ha VBA.InStr(VBA.LCase(xRcpAddress), "@sajatvállalatneve") = 0, akkor 'Írja be a karakterláncot dupla idézőjelbe. Ha a címzett e-mail címe tartalmazza ezt a karakterláncot, az alábbi „internal.htm” aláírás lesz hozzárendelve az e-mailhez. Ellenkező esetben rendelje hozzá az "external.htm" aláírást.
xSignatureFile = xSignaturePath & "External.htm"
Kilépés
Más
xSignatureFile = xSignaturePath & "Internal.htm"
Ha véget
Következő
VBA.DoEvents
Állítsa be az xDoc = xMailItem.GetInspector.WordEditor beállítást
xFindStr = "Feladó: " & xMailItem.Recipients.Item(1).Name & " <" & xRcpAddress & ">"
Ha VBA.InStr(1, xMailItem.Body, xFindStr) <> 0 Akkor
xDoc.Application.Selection.HomeKey Unit:=wdStory, Extend:=wdMove
Az xDoc.Application.Selection.Find segítségével
.Formázás törlése
.Text = xFindStr
.Execute Forward:=Igaz
Vége
Az xDoc.Application.Selection segítségével
.MoveLeft wdCharacter, 2
.InsertParagraphAfter
.MoveDown Unit:=wdLine, Count:=1
Vége
Más
Az xDoc.Application.Selection segítségével
.EndKey Unit:=wdStory, Extend:=wdMove
.InsertParagraphAfter
.MoveDown Unit:=wdLine, Count:=1
Vége
Ha véget
xDoc.Application.Selection.InsertFile FileName:=xSignatureFile, Link:=False, Attachment:=False
End Sub
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Josh,
Ez a probléma egy kicsit bonyolult. Időre van szükségem, hogy megoldást találjak. Egyszerűen képtelen most kezelni. Sajnálom, hogy.
A weboldal moderátora ezt a megjegyzést minimalizálta
Semmi gond – köszönöm, hogy megnézted!
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Crystal,

Remélem jól vagy.

Tudna-e tanácsot adni, hogy lehetséges-e más aláírás hozzáadása a tárgymező alapján, amely meghatározott szavakat tartalmaz?

Sok köszönet
Matt
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Matt Read!
Köszönjük észrevételét. Ezt a problémát még nem tudom megoldani.
A weboldal moderátora ezt a megjegyzést minimalizálta
Rendben, köszönöm, hogy időt szakítottál
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia! A kódot a címen implementáltam, nagyrészt rendeltetésszerűen működik. Időnként azonban beszúrja az aláírást az üzenet közepébe. először akkor történt, amikor a testben lévő asztalhoz rögzítettem. az aláírás bekerült a táblázatba. Az is előfordult, hogy a szöveg egy részét úgy levágja, hogy két-három sornyi szöveg kerül a levél végére (az aláírás után). Ez nem mindig történik meg, de remélem, tud segíteni a megoldásában, hogy megbízhatóbbá váljon.
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Mikkel Lundsgaard!
A kód jól működik az én esetemben. Melyik Outlook verziót használod?
A weboldal moderátora ezt a megjegyzést minimalizálta
Gondolom ez a legújabb verzió.
Még senki sem írt megjegyzést
Több ingatlan

Kövess minket

Copyright © 2009 - www.extendoffice.com. | Minden jog fenntartva. Powered by ExtendOffice. | Oldaltérkép
A Microsoft és az Office logó a Microsoft Corporation védjegyei vagy bejegyzett védjegyei az Egyesült Államokban és / vagy más országokban.
Sectigo SSL védi