Πώς σώζουμε αυτόματα ότι attachment λαμβάνουμε στο email (Microsoft Outlook)
- Τι είναι η PostgreSQL και πως κάνουμε μία πλήρης εγκατάσταση - 2 Σεπτέμβριος 2024
- Πώς ρυθμίζουμε το replication του GoldenGate ώστε να διαβάζει από το Standby του Oracle Data Guard - 2 Αύγουστος 2024
- Πώς μπορούμε να συνδέσουμε Oracle Database με SQL Server με χρήση Oracle Gateway σε Linux - 1 Ιούλιος 2024
Πως θα σας φαινότανε επισυναπτόμενα που στέλνονται από κάποιον συγκεκριμένο αποστολέα με ίσως συγκεκριμένο τίτλο και πολλά άλλα ίσως, να μπορούσανε αυτόματα να γίνονται αρχειοθέτηση σε ένα φάκελο του υπολογιστή χρονολογημένα;
Επίσης δεν θα μπορούσαμε έτσι να τα ανεβάζουμε αυτόματα σε κάποιον server με ftp ή να τα εισάγουμε σε μια βάση δεδομένων;
Είναι γνωστό ότι το Excel έχει προγραμματίστηκες ικανότητες μέσω VBA (Visual Basic for Applications) script αλλά η Microsoft δεν έχει σταματήσει εκεί. Μας δίνει τη δυνατότητα να τα χρησιμοποιήσουμε ακόμα και στο Outlook.
Με την χρήση τους στο Outlook μπορούμε να αυτοματοποιήσουμε πολλές εργασίες ή να φτιάξουμε email rules.
Οι δυνατότητες είναι απεριόριστες αλλά στο άρθρο αυτό θα δείτε πως θα φτιάξουμε ένα rule που όποτε έρχεται ένα email από συγκεκριμένο παραλήπτη θα σώζετε το επισυναπτόμενο σε συγκεκριμένο path με τη σημερινή ημερομηνία.
*Τα βήματα και οι εικόνες είναι για Outlook 2016, λειτουργεί σε όλες τις εκδόσεις αλλά ίσως χρειαστούν κάποιες τροποποιήσεις.
Ενεργοποίηση developer mode
Για αρχή ανοίγουμε το Οutlook και επιλέγουμε:
File – Options – Customize Ribbon – κάνουμε click στο κουτάκι Developer
Με το προηγούμενο βήμα μας εμφανίστηκε το tab του Developer οπότε επιλέγουμε:
Macro Security – Enable all macros
Προσθήκη του VBA κώδικα
Πάμε ξανά στην καρτέλα του Developer και επιλέγουμε Visual Basic.
Σε αυτό το σημείο κάνουμε μια τροποποίηση στο κάτωθι script και βάζουμε το path που θέλουμε στην θέση αυτό που έχω βάλει στο παράδειγμα ‘C:\Users\smatzouranis\outlook_files\‘.
Κάνουμε διπλο κλικ στην επιλογή module και τοποθετούμε τον κώδικα. Έπειτα κάνουμε κλικ το κουμπιά save και play.
Public Sub SaveAttachmentsToDisk(MItem As Outlook.MailItem) Dim oAttachment As Outlook.Attachment Dim sMakeFolder As String sMakeFolder = "C:\Users\smatzouranis\outlook_files\" & Format(Now(), "yyyyMMdd") & "\" If Not CreateObject("Scripting.FileSystemObject").FolderExists(sMakeFolder) Then CreateObject("Scripting.FileSystemObject").CreateFolder sMakeFolder End If For Each oAttachment In MItem.Attachments oAttachment.SaveAsFile sMakeFolder & oAttachment.DisplayName Next End Sub
Ενεργοποίηση εκτέλεσης μακροεντολών στη registry (αφορά μόνο καινούργιες εκδόσεις Outlook)
Σε αυτό το βήμα κλείνουμε το Outlook και πρέπει να ενεργοποιήσουμε μια τιμή στην registry.
Στο παράδειγμα μας χρησιμοποιώ Outlook 2016 οπότε τα βήματα είναι τα εξής:
Regedit – στο path HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Security – Δεξί κλικ νέα dword value με όνομα EnableUnsafeClientMailRules και τιμή 1.
Κανόνες ενεργοποίησης της μακροεντολής
Ανοίγουμε το Outlook πάλι και πάμε να φτιάξουμε το rule, η επιλογή βρίσκεται στο tab Home – Rules – Create Rule… – Advanced Options…
Στο πρώτο παράθυρο που θα μας εμφανιστεί με το που πατήσουμε την επιλογή Advanced Options είναι το σημείο που επιλέγουμε πότε θα ισχύει ο κανόνας, από ποιόν αποστολέα, με ποιόν τίτλο κλπ.
Επιλέγοντας Next θα πρέπει να επιλέξουμε την επιλογή run a script και έπειτα το hyperlink script που είναι σημειωμένο με κόκκινο χρώμα.
Στο popup παράθυρο θα επιλέξουμε την επιλογή που δημιουργήσαμε πριν με το vbscript SaveAttachmentsToDisk.
OK – Next – Finish
Και είμαστε έτοιμοι.
Το αποτέλεσμα
Στέλνοντάς δοκιμαστικό email με ένα excel στον εαυτό μου. Αυτόματα δημιουργήθηκε φάκελος με την σημερινή ημερομηνία και το attachment.
Σε επόμενο άρθρο θα δούμε πως μπορούμε να διαβάσουμε τις εγγραφές που μπορεί να έχει αυτό το επισυναπτόμενο με T-SQL και πως μπορούμε να εισάγουμε τις εγγραφές σε έναν πίνακα με αυτοματοποιημένο agent job στον SQL Server.