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

Πώς να αλλάξετε αυτόματα την υπογραφή βάσει παραληπτών στο Outlook;

Από προεπιλογή, το Outlook διαθέτει μια ενσωματωμένη λειτουργία για τους χρήστες να αλλάζουν αυτόματα την υπογραφή τους κατά την αποστολή email μέσω διαφορετικών λογαριασμών email. Αλλά πέρα ​​από αυτό, εδώ θα σας δείξω μέθοδο αυτόματης αλλαγής υπογραφής βάσει διαφορετικών παραληπτών στο πεδίο Προς στο Outlook.

Αλλάξτε αυτόματα την υπογραφή με βάση τους παραλήπτες με τον κωδικό VBA


Αλλάξτε αυτόματα την υπογραφή με βάση τους παραλήπτες με τον κωδικό VBA

Ακολουθήστε τα παρακάτω βήματα για να εφαρμόσετε διαφορετικές υπογραφές στους αντίστοιχους παραλήπτες κατά την αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου στο Outlook.

1. Πρώτον, πρέπει να απενεργοποιήσετε τη δυνατότητα αυτόματης επισύναψης υπογραφής στο Outlook. Παρακαλώ πατήστε φιλέτο > Επιλογές για να ανοίξετε το Επιλογές του Outlook παράθυρο.

2. Στο Επιλογές του Outlook παράθυρο, επιλέξτε Ταχυδρομείο στο αριστερό παράθυρο και, στη συνέχεια, κάντε κλικ στο Υπογραφές στο κουμπί Σύνταξη μηνυμάτων Ενότητα. Δείτε το στιγμιότυπο οθόνης:

3. Στο Υπογραφές και χαρτικά πλαίσιο διαλόγου, μεταβείτε στο Επιλέξτε την προεπιλεγμένη υπογραφή ενότητα κάτω από το Υπογραφή ηλεκτρονικού ταχυδρομείου καρτέλα, επιλέξτε έναν λογαριασμό email στο Λογαριασμός ηλεκτρονικού ταχυδρομείου αναπτυσσόμενη λίστα και, στη συνέχεια, επιλέξτε (Κανένας) από το Νέα μηνύματα και Απαντήσεις / προωθήσεις αναπτυσσόμενες λίστες. Επαναλάβετε αυτά τα βήματα έως ότου οριστούν όλοι οι λογαριασμοί email (Κανένας). Στη συνέχεια, κάντε κλικ στο OK κουμπί.

Note: Μπορείτε επίσης να δημιουργήσετε τις απαραίτητες υπογραφές σας σε αυτό Υπογραφές και χαρτικά κουτί διαλόγου.

4. Κάντε κλικ στο κουμπί OK κουμπί όταν επιστρέφει το Επιλογές του Outlook παράθυρο.

5. Πάτα το άλλος + F11 για να ανοίξετε το Microsoft Visual Basic για εφαρμογές παράθυρο.

6. Στο Microsoft Visual Basic για εφαρμογές παράθυρο, κάντε διπλό κλικ Αυτό το OutlookSession στο αριστερό παράθυρο για να ανοίξετε το παράθυρο Κωδικός και το αντίγραφο κάτω από τον κώδικα VBA στο παράθυρο. Δείτε το στιγμιότυπο οθόνης:

Κωδικός VBA: Αλλάξτε αυτόματα την υπογραφή βάσει παραληπτών στο Outlook

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

Notes:

  • 1). Στον κωδικό VBA, αντικαταστήστε το "Διεύθυνση email 1/2/3/4"Με τις συγκεκριμένες διευθύνσεις email των παραληπτών.
  • 2). "αaa.htm""bbb.htm"Και"ccc.htm" είναι οι καθορισμένες υπογραφές που θα στείλετε στους αντίστοιχους παραλήπτες.
  • 3). Σε αυτήν την περίπτωση, υπογραφή "ααα"Θα σταλεί στο"Διεύθυνση email 1", υπογραφή "bbb"Θα σταλεί στο"Διεύθυνση email 2"Και"Διεύθυνση email 3", και "Διεύθυνση email 4"Θα λάβει το email ενσωματωμένο με υπογραφή"ccc". Αλλάξτε τα ανάλογα με τις ανάγκες σας.
  • 4). Εάν υπάρχουν πολλοί παραλήπτες σε ένα email, ο κωδικός λαμβάνει υπόψη μόνο τον πρώτο παραλήπτη. Σε αυτήν την περίπτωση, άλλοι παραλήπτες θα λάβουν τα email με την ίδια υπογραφή με τον πρώτο παραλήπτη.

7. Στη συνέχεια κάντε κλικ στο κουμπί Εργαλεία > αναφορές για να μεταβείτε στο Αναφορές-Έργο κουτί διαλόγου. Στο παράθυρο διαλόγου, ελέγξτε και τα δύο Βιβλιοθήκη αντικειμένων του Microsoft Word και το Χρόνος εκτέλεσης δέσμης ενεργειών Microsoft επιλογές και, στη συνέχεια, κάντε κλικ στο OK κουμπί, δείτε το στιγμιότυπο οθόνης:

8. Πάτα το άλλος + Q πλήκτρα για να κλείσετε το Microsoft Visual Basic για εφαρμογές παράθυρο.

Από τώρα και στο εξής, αφού συνθέσετε ένα email και πατήσετε το κουμπί Αποστολή, η αντίστοιχη υπογραφή θα εισαχθεί αυτόματα στο τέλος του σώματος email με βάση τη διεύθυνση email του παραλήπτη στο πεδίο Προς.


Εισαγάγετε αυτόματα την τρέχουσα ημερομηνία ως υπογραφή κατά την αποστολή email στο Outlook:

Εάν θέλετε να εισαγάγετε τη χρονική σήμανση ως υπογραφή στο σώμα του email κατά τη δημιουργία / απάντηση / προώθηση νέου email στο Outlook, μπορείτε να ενεργοποιήσετε το Προσθέστε υπογραφή ημερομηνίας κατά τη δημιουργία νέου, απάντησης και προώθησης email επιλογή του Kutools for Outlook για να το επιτύχετε. Δείτε το στιγμιότυπο οθόνης:
Κατεβάστε το και δοκιμάστε το τώρα (δωρεάν διαδρομή 60 ημερών)


Kutools for Outlook - Φέρνει 100 προηγμένες δυνατότητες στο Outlook και κάνει τη δουλειά πολύ πιο εύκολη!

  • Αυτόματο CC / BCC με κανόνες κατά την αποστολή email · Αυτόματη προώθηση Πολλαπλά μηνύματα ηλεκτρονικού ταχυδρομείου κατά παραγγελία. Αυτόματη απάντηση χωρίς διακομιστή ανταλλαγής και περισσότερες αυτόματες δυνατότητες ...
  • Προειδοποίηση BCC - εμφάνιση μηνύματος όταν προσπαθείτε να απαντήσετε σε όλα εάν η διεύθυνση αλληλογραφίας σας βρίσκεται στη λίστα BCC; Υπενθύμιση όταν λείπουν συνημμένακαι περισσότερες λειτουργίες υπενθύμισης ...
  • Απάντηση (Όλα) Με όλα τα συνημμένα στη συνομιλία μέσω ταχυδρομείου; Απάντηση σε πολλά email σε δευτερόλεπτα; Αυτόματη προσθήκη χαιρετισμού κατά την απάντηση Προσθήκη ημερομηνίας στο θέμα ...
  • Εργαλεία συνημμένων: Διαχείριση όλων των συνημμένων σε όλα τα μηνύματα, Αυτόματη απόσπαση, Συμπίεση όλων, Μετονομασία όλων, Αποθήκευση όλων ... Γρήγορη αναφορά, Καταμέτρηση επιλεγμένων μηνυμάτων...
  • Ισχυρά ανεπιθύμητα email κατά παραγγελία? Κατάργηση διπλότυπων μηνυμάτων και επαφών... Σας επιτρέπουν να κάνετε πιο έξυπνα, πιο γρήγορα και καλύτερα στο Outlook.
shot kutools outlook kutools καρτέλα 1180x121
shot kutools outlook kutools συν καρτέλα 1180x121
 
Σχόλια (43)
Δεν υπάρχουν ακόμη βαθμολογίες. Γίνε ο πρώτος που θα αξιολογήσετε!
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Πώς θα συμπεριφερόταν αυτό εάν υπάρχουν πολλοί παραλήπτες;
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Devansh,
Εάν υπάρχουν πολλοί παραλήπτες σε ένα email, ο κωδικός λειτουργεί μόνο για τον πρώτο. Και όλοι οι παραλήπτες θα λάβουν το email με την ίδια υπογραφή που καθορίζεται σε αυτό το άτομο.
Εάν θέλετε να συμπεριλάβετε διαφορετικές υπογραφές όταν υπάρχουν πολλοί παραλήπτες, το email θα πρέπει να αποσταλεί χωριστά σε διαφορετικούς παραλήπτες. Και αυτό θα χρειαστεί άλλον κωδικό για να επιτευχθεί.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γειά σου! Πολύ ωραίο σενάριο, αλλά υπάρχει πρόβλημα κατά την αποστολή σε διευθύνσεις excahnge, η xRcpAddress επιστρέφει το όνομα X400 όχι τη διεύθυνση smtp, αυτό καθιστά αδύνατη την επιλογή βάσει τομέα. Υπάρχει λύση σε αυτό;


Για να βελτιωθώ, άλλαξα τη δήλωση case σε εάν χρησιμοποιώ τη συνάρτηση inStr για να διακρίνω μαζικά μηνύματα αλληλογραφίας

Αν InStr(xRcpAddress, "@example") Τότε
xSignatureFile = xSignaturePath & "aaa.htm"
End If
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Πρόσθεσα αυτό το έξυπνο σενάριο στο Outlook 2013 και προσδιορίζει και επιλέγει σωστά τις διαφορετικές υπογραφές email που χρησιμοποιώ.

Έχω ένα πρόβλημα με ένα από τα γραφικά που είναι μέρος μιας υπογραφής. Αντί να εμφανίζεται το γραφικό, ο φάκελος "Απεσταλμένα" (και ο παραλήπτης) εμφανίζει το email με το συνημμένο στιγμιότυπο οθόνης και η προσπάθεια λήψης της εικόνας δεν λειτουργεί.

Εάν απενεργοποιήσω το σενάριο και υπογράψω χειροκίνητα, τότε το εξερχόμενο email είναι σωστό και ο παραλήπτης λαμβάνει αυτό που σκοπεύω. Ακόμη πιο ενδιαφέρον είναι ότι με μια άλλη απλούστερη υπογραφή, όπου το γραφικό είναι απλώς μια ευθεία γραμμή, αυτό περιλαμβάνεται, αν και το γραφικό έχει αλλάξει ελαφρώς.

Το γραφικό είναι ένα αρχείο PNG 80KB 5904 x 1024 pixel με λίγο βάθος 32 και έχω δοκιμάσει μικρότερα μεγέθη έως 10KB 369 x 64 pixel που δεν βοήθησε. Η έκδοση του Outlook είναι 15.0.5189.1000 32 Bit Professional Plus 2013 σε πλατφόρμα Windows 10 Pro.

Αναρωτιέμαι αν μπορείτε να προτείνετε μια λύση για αυτό παρακαλώ.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Αγαπητή Αμάντα,
Ενημερώσαμε τον κωδικό. Ευχαριστώ που μου υπενθύμισες το σφάλμα.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Πολύ ωραίο σενάριο, αλλά τα αρχεία εικόνας στην υπογραφή μου δεν παραδίδονται σωστά. Μπορείτε να διορθώσετε αυτό το πρόβλημα;
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Vysakh,
Ο κώδικας έχει ενημερωθεί και το πρόβλημα με τις εικόνες έχει επιδιορθωθεί τώρα. Συγγνώμη για την ταλαιπωρία.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Crystal,

τι αλλάξατε για να διορθώσετε το πρόβλημα των εικόνων; Χρησιμοποιώ τον τελευταίο σας κωδικό και έχω το ίδιο πρόβλημα με την Amanda.
Ευχαριστώ
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σας,
Συγγνώμη για το λάθος. Το VBA έχει ενημερωθεί ξανά και το πρόβλημα με τις εικόνες έχει διορθωθεί πλήρως τώρα.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Εκτός από τον κώδικα, έχει αλλάξει και η λειτουργία του βήματος 7. Ακολουθήστε τις οδηγίες βήμα προς βήμα για να το κατεβάσετε.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια, θα ήθελα να το εφαρμόσω για τη διαφοροποίηση των υπογραφών κατά την αποστολή εσωτερικών και εξωτερικών email. Επομένως, αντί να αναγνωρίζω συγκεκριμένες διευθύνσεις email, θα έπρεπε απλώς να διαφοροποιήσω τη διεύθυνση email του παραλήπτη που περιέχει το όνομα της εταιρείας μου μέσα σε αυτήν ή όχι. Θα μπορούσατε να με ενημερώσετε πώς θα ήταν ο κωδικός για τη συγκεκριμένη περίπτωση;


(Για παράδειγμα, αν ήθελα να υπογράψω με την υπογραφή "internal.htm" όταν το email του παραλήπτη περιέχει τη συμβολοσειρά "microsoft" και την υπογραφή "external.htm" εάν δεν περιέχει τη συμβολοσειρά "microsoft". Σε αυτήν την περίπτωση διευθύνσεις όπως " jane@microsoft.com», «tom@microsoft.support.com» και «recruiting@microsoft.europe.com» θα θεωρούνται όλα σαν οι εσωτερικοί παραλήπτες για έναν υπάλληλο της Microsoft).

Ευχαριστώ!!
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Pauli,
Δοκιμάστε τον παρακάτω κώδικα. Πριν εφαρμόσετε τον κωδικό, μεταβείτε στο αναφορές διαλόγου για να ελέγξετε το Βιβλιοθήκη αντικειμένων του Microsoft Word πλαίσιο (όπως φαίνεται στη συνημμένη εικόνα).

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

«Ενημερώθηκε από ExtendOffice 2020 / 6 / 12

Dim xMailItem ως MailItem

Dim xRecipients As Recipients

Dim xRecipient ως Recipient

Dim xRcpAddress As String

Dim xSignatureFile, xSignaturePath ως συμβολοσειρά

Dim xFSO As Scripting.FileSystemObject

Dim xDoc ως έγγραφο

On Error Συνέχιση Επόμενη

Ορίστε xFSO = New Scripting.FileSystemObject

Αν Item.Class <> olMail Τότε βγείτε από το Sub

Ορισμός xMailItem = Στοιχείο

Ορίστε xRecipients = xMailItem.Recipients

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

Για κάθε xRecipient Σε xRecipients

Εάν xRecipient.AddressEntry.AddressEntryUserType = olExchangeUserAddressEntry Τότε

xRcpAddress = xRecipient.AddressEntry.GetExchangeUser.PrimarySmtpAddress

Αλλού

xRcpAddress = xRecipient.AddressEntry.Address

End If

Εάν VBA.InStr(VBA.LCase(xRcpAddress), "@microsoft") > 0 Στη συνέχεια, "Εισαγάγετε τη συμβολοσειρά στα διπλά εισαγωγικά. Εάν η διεύθυνση email του παραλήπτη περιέχει αυτήν τη συμβολοσειρά, η παρακάτω υπογραφή "internal.htm" θα εκχωρηθεί στο email. Διαφορετικά, εκχωρήστε την υπογραφή "external.htm".

xSignatureFile = xSignaturePath & "εσωτερικός.htm"

Έξοδος για

Αλλού

xSignatureFile = xSignaturePath & "εξωτερικός.htm"

End If

Επόμενο

VBA.DoEvents

Ορίστε 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

Sub End
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια, Crystal, έχω μια ερώτηση. Όταν στέλνω email τόσο σε εξωτερικούς όσο και σε εσωτερικούς παραλήπτες, πώς μπορώ να το διαφοροποιήσω επιλέγοντας πάντα εξωτερική υπογραφή; Ευχαριστώ
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Μπορεί να έχετε βρει τη λύση για τον εαυτό σας μέχρι τώρα ή να έχετε εγκαταλείψει αυτό το νήμα εδώ και πολύ καιρό, αλλά νιώθω την ανάγκη να το ολοκληρώσω τώρα. Η απλή απάντηση σε αυτή την ερώτηση:
Επεξεργαστείτε την ρήτρα If-Else (που διαφοροποιεί τις δύο υπογραφές) ως εξής:
Αν VBA.InStr(VBA.LCase(xRcpAddress), "@microsoft") = 0 Τότε 'Εισαγάγετε τη συμβολοσειρά στα διπλά εισαγωγικά. Εάν η διεύθυνση email του παραλήπτη περιέχει αυτήν τη συμβολοσειρά, η παρακάτω υπογραφή "internal.htm" θα εκχωρηθεί στο email. Διαφορετικά, εκχωρήστε την υπογραφή "external.htm".
xSignatureFile = xSignaturePath & "external.htm"
Έξοδος για
Αλλού
xSignatureFile = xSignaturePath & "internal.htm"
End If

Τι συμβαίνει τώρα:
Εάν η διεύθυνση παραλήπτη από μια λίστα διευθύνσεων παραληπτών ΔΕΝ περιέχει τη δεδομένη συμβολοσειρά, χρησιμοποιήστε την εξωτερική υπογραφή και σταματήστε να κοιτάζετε άλλους παραλήπτες. Διαφορετικά χρησιμοποιήστε την εσωτερική υπογραφή και αναζητήστε την επόμενη διεύθυνση παραλήπτη.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Έχω κάποια περίεργη συμπεριφορά με τα μηνύματα ηλεκτρονικού ταχυδρομείου του Outlook που δημιουργούνται από VBA. Η υπογραφή προστίθεται στην αλληλογραφία όπως προβλέπεται, αλλά δεν βρίσκεται στο κάτω μέρος του μηνύματος αλλά μάλλον στη μέση (μοιάζει με το πρώτο κενό διάστημα). Καμιά ιδέα γιατί και πώς να το ξεπεράσω;
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Tim έχω το ίδιο θέμα. Όπου ο χρήστης κάνει τελευταίο κλικ, εισάγεται η εικόνα. Έχει κανείς τρόπο να εξαναγκάσει την εικόνα ακριβώς πάνω από την υπογραφή;
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Crystal,
Ενδιαφέρομαι για τον κώδικα VBA που γράψατε για το "pauli" παρακάτω, αλλά όταν τον εκτελώ, δημιουργείται το ακόλουθο σφάλμα (και η γραμμή κώδικα "XDoc ως έγγραφο" επισημαίνεται):
"Σφάλμα μεταγλώττισης: Ο τύπος που ορίζεται από το χρήστη δεν έχει οριστεί"
Πώς μπορώ να επιλύσω αυτό το ζήτημα παρακαλώ;

Ευχαριστώ, Τιμ
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Crystal,

Ενδιαφέρομαι για τον κώδικα VBA που γράψατε για το "pauli" παρακάτω, αλλά όταν τον εκτελώ, δημιουργείται το ακόλουθο σφάλμα (και η γραμμή κώδικα "XDoc ως έγγραφο" επισημαίνεται):

"Σφάλμα μεταγλώττισης: Ο τύπος που ορίζεται από το χρήστη δεν έχει οριστεί"

Πώς μπορώ να επιλύσω αυτό το ζήτημα παρακαλώ;

Ευχαριστώ!
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Tim, Προτού εφαρμόσεις τον κώδικα, μεταβείτε στο παράθυρο διαλόγου Αναφορές για να ελέγξετε το Βιβλιοθήκη αντικειμένων του Microsoft Word πλαίσιο (όπως φαίνεται στη συνημμένη εικόνα).
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Υπέροχο σενάριο. Σας ευχαριστούμε. Οποιοσδήποτε τρόπος να εισαγάγετε την υπογραφή πριν πατήσετε αποστολή σε προεπισκόπηση. Ξέρω ότι μπορώ να καθυστερήσω την αποστολή και να το δω στα εξερχόμενα. Προς το παρόν δεν εμφανίζεται μέχρι να πατήσω αποστολή. Εάν όχι, υπάρχει κάποιο λογισμικό που θα εκχωρεί αυτόματα μια υπογραφή βάσει της επαφής. Χρησιμοποιούμε ένα πρόγραμμα για πολλά χρόνια που λειτούργησε άψογα, αλλά δεν λειτουργεί σε νέες εκδόσεις του Outlook.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Αυτό το σενάριο είναι υπέροχο και λειτουργικό για αυτό που έψαχνα. Είναι δυνατόν να διαφοροποιηθεί ο κωδικός εάν το μήνυμα είναι νέο ή είναι απάντηση καθώς και ο τομέας email; Για παράδειγμα, να επιλέξετε περαιτέρω μια ξεχωριστή υπογραφή για απαντήσεις σε εξωτερικούς παραλήπτες έναντι ενός νέου μηνύματος σε εξωτερικούς παραλήπτες;
Σας ευχαριστούμε για την κοινή χρήση.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Seth, Ο παρακάτω κωδικός διαφοροποιεί εάν το μήνυμα είναι νέο ή απάντηση για την εισαγωγή υπογραφής. Πρέπει να αλλάξετε χειροκίνητα το "Διεύθυνση ηλεκτρονικού ταχυδρομείου"Και"Απάντηση Διεύθυνση Email" και τα αντίστοιχα ονόματα υπογραφής στον κωδικό.
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
«Ενημερώθηκε από ExtendOffice 2020 / 12 / 24
Dim xMailItem ως MailItem
Dim xRecipients As Recipients
Dim xRecipient ως Recipient
Dim xRcpAddress As String
Dim xSignatureFile, xSignaturePath ως συμβολοσειρά
Dim xFSO As Scripting.FileSystemObject
Dim xDoc ως έγγραφο
On Error Συνέχιση Επόμενη
Ορίστε xFSO = New Scripting.FileSystemObject
Αν Item.Class <> olMail Τότε βγείτε από το Sub
Ορισμός xMailItem = Στοιχείο
Ορίστε xRecipients = xMailItem.Recipients
xSignaturePath = CreateObject("WScript.Shell").SpecialFolders(5) + "\Microsoft\Signatures\"
Εάν InStr(xMailItem.Subject, "RE: ") <> 1 Τότε
Για κάθε xRecipient Σε xRecipients
Εάν xRecipient.AddressEntry.AddressEntryUserType = olExchangeUserAddressEntry Τότε
xRcpAddress = xRecipient.AddressEntry.GetExchangeUser.PrimarySmtpAddress
Αλλού
xRcpAddress = xRecipient.AddressEntry.Address
End If
Επιλέξτε Case xRcpAddress
Υπόθεση "Διεύθυνση email 1"
xSignatureFile = xSignaturePath & "ααα.htm"
Έξοδος για
Υπόθεση "Διεύθυνση email 2""Διεύθυνση email 3"
xSignatureFile = xSignaturePath & "bbb.htm"
Έξοδος για
Υπόθεση "Διεύθυνση email 4"
xSignatureFile = xSignaturePath & "ccc.htm"
Έξοδος για
Επιλέξτε Τερματισμός
Επόμενο
Αλλού
Για κάθε xRecipient Σε xRecipients
Εάν xRecipient.AddressEntry.AddressEntryUserType = olExchangeUserAddressEntry Τότε
xRcpAddress = xRecipient.AddressEntry.GetExchangeUser.PrimarySmtpAddress
Αλλού
xRcpAddress = xRecipient.AddressEntry.Address
End If
Επιλέξτε Case xRcpAddress
Περίπτωση "β"
xSignatureFile = xSignaturePath & "111.htm" '111.htm είναι το όνομα της υπογραφής που θα εισαγάγετε όταν απαντήσετε στη "Απάντηση διεύθυνση email 1"
Έξοδος για
Υπόθεση "Απάντηση Διεύθυνση Email 2""Απάντηση Διεύθυνση Email 3"
xSignatureFile = xSignaturePath & "222.htm"
Έξοδος για
Υπόθεση "Απάντηση Διεύθυνση Email 4"
xSignatureFile = xSignaturePath & "333.htm"
Έξοδος για
Επιλέξτε Τερματισμός
Επόμενο
End If
VBA.DoEvents
Ορίστε 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
Sub End
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Αυτός ο κωδικός λειτούργησε για μένα μέχρι να επανεκκινήσω τον υπολογιστή μου. Όταν ανοίγω ξανά το alt+F11, όλος ο κώδικας είναι ακόμα στην ίδια θέση, αλλά όταν στέλνω ένα e-mail, τον στέλνει απλώς χωρίς υπογραφή και χωρίς να εκδίδει κανένα είδος προειδοποιητικού μηνύματος.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια Ivan, Το πρόβλημα προκαλείται από την απενεργοποίηση της επιλογής Macro από το Excel. Πρέπει να μεταβείτε στο παράθυρο Επιλογές του Outlook κάνοντας κλικ φιλέτο > Επιλογές. Στην Επιλογές του Outlook παράθυρο, κάντε κλικ στην επιλογή Κέντρο αξιοπιστίας στο αριστερό παράθυρο και, στη συνέχεια, κάντε κλικ στο Ρυθμίσεις Κέντρου αξιοπιστίας κουμπί. Στο Κέντρο αξιοπιστίας παράθυρο, κάντε κλικ στην επιλογή Ρυθμίσεις μακροεντολών στο αριστερό παράθυρο και, στη συνέχεια, επιλέξτε το Ενεργοποιήστε όλες τις μακροεντολές κουμπί επιλογής και ελέγξτε το Εφαρμόστε ρυθμίσεις ασφαλείας μακροεντολών στα εγκατεστημένα πρόσθετα κουτί. Δείτε το συνημμένο στιγμιότυπο οθόνης παρακάτω.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Crystal,
Έχω μια ερώτηση σχετικά με τον πηγαίο κώδικα παρακάτω.
Θα ήθελα να στείλω μια εσωτερική υπογραφή μόνο σε ορισμένους παραλήπτες email (30), μόλις προστεθεί άλλη διεύθυνση email, θα πρέπει να χρησιμοποιηθεί η εξωτερική υπογραφή.
Μπορείτε να με βοηθήσετε με το αίτημά μου;
Πολλές ευχαριστίες εκ των προτέρων.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Έχω ρυθμίσεις πολλαπλών λογαριασμών email στο Outlook και έχω ρυθμίσει το σενάριό σας για να στέλνετε διαφορετικές υπογραφές στα εσωτερικά και εξωτερικά email.

Πώς μπορώ να τροποποιήσω το σενάριο ώστε να στέλνει αυτές τις υπογραφές μόνο εάν στέλνω από το jweaver@andrewslogistics.com;

Με άλλα λόγια, δεν θέλω να στείλω αυτές τις υπογραφές όταν στέλνω από μια διεύθυνση ηλεκτρονικού ταχυδρομείου διαφορετική από το jweaver@andrewslogistics.com.

Ευχαριστώ,
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Jeff Weaver,
Ο ακόλουθος κώδικας VBA έχει τροποποιηθεί για την εισαγωγή αυτών των υπογραφών κατά την αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου μόνο από έναν καθορισμένο λογαριασμό email. Δοκιμάστε το. ελπίζω να μπορώ να βοηθήσω.
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
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Crystal - Έχω επίσης το ίδιο πρόβλημα με τον Tim (#33997) και τον Greg (#34358) που αναφέρθηκαν παραπάνω, αλλά δεν βλέπω λύση. Η υπογραφή εμφανίζεται στο email μου στο τελευταίο σημείο που κάνω κλικ πριν πατήσω 'αποστολή', και έτσι εμφανίζεται συχνά στη μέση του email. Κάποια βοήθεια/λύσεις;

Ευχαριστώ!

Eric
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια Eric Anderson,
Ευχαριστούμε για την ανταπόκρισή σας. Ο κώδικας έχει πλέον ενημερωθεί και το πρόβλημα έχει λυθεί. Δοκιμάστε το.
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
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σας,

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.

Έχετε λύση;

Lélian
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου LÉLIAN ALEMPS.
Ο κωδικός VBA έχει ενημερωθεί. Ευχαριστούμε για την ανταπόκρισή σας. Δοκιμάστε το.

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
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Crystal,

Όπως και οι άλλοι σε αυτό το νήμα, θα ήθελα η υπογραφή μου να είναι προεπιλεγμένη σε εξωτερική υπογραφή, εάν υπάρχουν μη εσωτερικές διευθύνσεις email στη γραμμή προς ή cc και να αλλάξω σε μια εσωτερική υπογραφή όταν είναι μόνο εσωτερικές διευθύνσεις email. Για να γίνει αυτό, συνδύασα τον πιο ενημερωμένο κώδικά σας (απάντηση στον Lelian) με την απάντηση του Random_Guest στη Daniela (προεπιλογή για την εξωτερική υπογραφή). Το αποτέλεσμα είναι ότι όταν απαντώ μόνο σε εσωτερικές διευθύνσεις email, η υπογραφή λειτουργεί τέλεια. Ωστόσο, όταν τραβάει την εξωτερική μου υπογραφή, ρίχνει την υπογραφή στο κάτω μέρος της αλυσίδας email, όχι στο τέλος του email που στέλνω. Μπορείτε παρακαλώ να συμβουλεύσετε πώς να διορθώσετε; Έχω συμπεριλάβει τον παρακάτω κωδικό:

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
«Ενημερώθηκε από ExtendOffice 2022 / 08 / 01
Dim xMailItem ως MailItem
Dim xRecipients As Recipients
Dim xRecipient ως Recipient
Dim xRcpAddress As String
Dim xSignatureFile, xSignaturePath ως συμβολοσειρά
Dim xFSO As Scripting.FileSystemObject
Dim xDoc ως έγγραφο
Dim xFindStr ως συμβολοσειρά
On Error Συνέχιση Επόμενη
Ορίστε xFSO = New Scripting.FileSystemObject
Αν Item.Class <> olMail Τότε βγείτε από το Sub
Ορισμός xMailItem = Στοιχείο
Ορίστε xRecipients = xMailItem.Recipients
xSignaturePath = CreateObject("WScript.Shell").SpecialFolders(5) + "\Microsoft\Signatures\"
Για κάθε xRecipient Σε xRecipients
Εάν xRecipient.AddressEntry.AddressEntryUserType = olExchangeUserAddressEntry Τότε
xRcpAddress = xRecipient.AddressEntry.GetExchangeUser.PrimarySmtpAddress
Αλλού
xRcpAddress = xRecipient.AddressEntry.Address
End If
Αν VBA.InStr(VBA.LCase(xRcpAddress), "@mycompany'sname") = 0 Τότε 'Εισαγάγετε τη συμβολοσειρά στα διπλά εισαγωγικά. Εάν η διεύθυνση email του παραλήπτη περιέχει αυτήν τη συμβολοσειρά, η παρακάτω υπογραφή "internal.htm" θα εκχωρηθεί στο email. Διαφορετικά, εκχωρήστε την υπογραφή "external.htm".
xSignatureFile = xSignaturePath & "External.htm"
Έξοδος για
Αλλού
xSignatureFile = xSignaturePath & "Internal.htm"
End If
Επόμενο
VBA.DoEvents
Ορίστε xDoc = xMailItem.GetInspector.WordEditor
xFindStr = "Από: " & xMailItem.Recipients.Item(1).Όνομα & " <" & xRcpΔιεύθυνση & ">"
Αν VBA.InStr(1, xMailItem.Body, xFindStr) <> 0 Τότε
xDoc.Application.Selection.HomeKey Unit:=wdStory, Extend:=wdMove
Με xDoc.Application.Selection.Find
.ClearFormatting
.Text = xFindStr
.Execute Forward:=True
Τέλος με
Με xDoc.Application.Selection
.MoveLeft wdCharacter, 2
.Εισαγωγή ΠαράγραφουΜετά
.MoveDown Unit:=wdLine, Count:=1
Τέλος με
Αλλού
Με xDoc.Application.Selection
.EndKey Unit:=wdStory, Extend:=wdMove
.Εισαγωγή ΠαράγραφουΜετά
.MoveDown Unit:=wdLine, Count:=1
Τέλος με
End If
xDoc.Application.Selection.InsertFile FileName:=xSignatureFile, Link:=False, Attachment:=False
Sub End
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια Τζος,
Αυτό το πρόβλημα είναι λίγο περίπλοκο. Χρειάζομαι χρόνο για να βρω μια λύση. Απλώς δεν μπορώ να το χειριστώ αυτή τη στιγμή. Λυπάμαι για αυτό.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Κανένα πρόβλημα -- ευχαριστώ που το ρίξατε μια ματιά!
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Crystal,

Ελπίζω να είσαι καλά.

Μπορείτε να συμβουλεύσετε εάν είναι δυνατόν να προσθέσετε μια διαφορετική υπογραφή με βάση το πεδίο θέματος που περιέχει συγκεκριμένες λέξεις.

Πολά ευχαριστώ
Ματ
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια Matt Read,
Σας ευχαριστούμε για το σχόλιό σας. Δεν είμαι σε θέση να λύσω αυτό το πρόβλημα ακόμα.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Οκ ευχαριστώ για τον χρόνο
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια! Έχω εφαρμόσει τον κώδικα στο μεγαλύτερο μέρος ότι λειτουργεί όπως προβλέπεται. Ωστόσο, κάθε τόσο βάζει την υπογραφή στη μέση ενός μηνύματος. συνέβη για πρώτη φορά όταν προσάρτησα στον πίνακα στο σώμα. η υπογραφή μπήκε στον πίνακα. Επίσης, έχει τύχει να κόψει μερικά από το κείμενο έτσι ώστε δύο-τρεις γραμμές κειμένου να βρίσκονται στο τέλος του ταχυδρομείου (μετά την υπογραφή). Αυτό δεν συμβαίνει συνέχεια, αλλά ελπίζω ότι μπορείτε να βοηθήσετε στην επίλυσή του, ώστε να γίνει πιο αξιόπιστο.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Mikkel Lundsgaard,
Ο κώδικας λειτουργεί καλά στην περίπτωσή μου. Ποια έκδοση του Outlook χρησιμοποιείτε;
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Υποθέτω ότι είναι η τελευταία έκδοση.
Δεν υπάρχουν σχόλια δημοσιεύτηκε ακόμα
Τοποθετήστε Περισσότερα

Ακολουθησε μας

Πνευματικά δικαιώματα © 2009 - www.extendoffice.com. | Ολα τα δικαιώματα διατηρούνται. Τροφοδοτείται από ExtendOffice. | Sitemap
Το Microsoft και το λογότυπο του Office είναι εμπορικά σήματα ή σήματα κατατεθέντα της Microsoft Corporation στις Ηνωμένες Πολιτείες ή / και σε άλλες χώρες.
Προστατεύεται από το Sectigo SSL