![]() |
| If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. |
|
|||||||
| Tags: attachemtns, automatically, saving |
|
|
|
Thread Tools | Display Modes |
|
#1
|
|||
|
|||
|
Hi,
I'm trying to implement a solution that saves all my attachments in a folder automatically. I found the code below that is a good start. However, I have some questions: 1.) How can I make a simple method like the one below visible in the outlook menu or toolbar? 2.) I would like to run a "rule" and execute a script when I receive an email with attachment. I know how to setup the rule. But I don't know how to structure the script to receive the proper input value and execute SaveAs only for this email Any help would be appreciated. Private Sub SaveAttachements() Const olFolderInbox = 6 Set objOutlook = CreateObject("Outlook.Application") Set objNamespace = objOutlook.GetNamespace("MAPI") Set objFolder = objNamespace.GetDefaultFolder(olFolderInbox) Set colItems = objFolder.Items Set objFSO = CreateObject("Scripting.FileSystemObject") On Error Resume Next For Each objMessage In colItems intCount = objMessage.Attachments.Count If intCount 0 Then For i = 1 To intCount strTempFile = objFSO.GetTempName objMessage.Attachments.Item(i).SaveAsFile "C:\mailarchive\attachments\" & strTempFile & "_" & _ objMessage.Attachments.Item(i).FileName Next End If Next End Sub |
| Ads |
|
#2
|
|||
|
|||
|
1) View | Toolbars | Customize, then drag your macro from the list of commands to the desired toolbar.
2) In the procedure for a "run a script" rule action, the item being processed is passed as an argument : Sub RunAScriptRuleRoutine(MyMail As MailItem) Dim strID As String Dim olNS As Outlook.NameSpace Dim msg As Outlook.MailItem Dim rply as Outlook.MailItem strID = MyMail.EntryID Set olNS = Application.GetNamespace("MAPI") Set msg = olNS.GetItemFromID(strID) ' do stuff with msg, e.g. msg.Attachments(1).SaveAsFile some file name Set msg = Nothing Set rply = Nothing Set olNS = Nothing End Sub -- Sue Mosher, Outlook MVP Author of Microsoft Outlook 2007 Programming: Jumpstart for Power Users and Administrators http://www.outlookcode.com/article.aspx?id=54 "Frank" wrote in message ... Hi, I'm trying to implement a solution that saves all my attachments in a folder automatically. I found the code below that is a good start. However, I have some questions: 1.) How can I make a simple method like the one below visible in the outlook menu or toolbar? 2.) I would like to run a "rule" and execute a script when I receive an email with attachment. I know how to setup the rule. But I don't know how to structure the script to receive the proper input value and execute SaveAs only for this email Any help would be appreciated. Private Sub SaveAttachements() Const olFolderInbox = 6 Set objOutlook = CreateObject("Outlook.Application") Set objNamespace = objOutlook.GetNamespace("MAPI") Set objFolder = objNamespace.GetDefaultFolder(olFolderInbox) Set colItems = objFolder.Items Set objFSO = CreateObject("Scripting.FileSystemObject") On Error Resume Next For Each objMessage In colItems intCount = objMessage.Attachments.Count If intCount 0 Then For i = 1 To intCount strTempFile = objFSO.GetTempName objMessage.Attachments.Item(i).SaveAsFile "C:\mailarchive\attachments\" & strTempFile & "_" & _ objMessage.Attachments.Item(i).FileName Next End If Next End Sub |
|
#3
|
|||
|
|||
|
Hi,
Thanks for the fast answers. About 1.) How do I need to declare my Sub so that it shows up in the command list? A new question: Is there a way to check the date of the attachment item? I would like to overwrite older attachments. "Sue Mosher [MVP-Outlook]" wrote in message ... 1) View | Toolbars | Customize, then drag your macro from the list of commands to the desired toolbar. 2) In the procedure for a "run a script" rule action, the item being processed is passed as an argument : Sub RunAScriptRuleRoutine(MyMail As MailItem) Dim strID As String Dim olNS As Outlook.NameSpace Dim msg As Outlook.MailItem Dim rply as Outlook.MailItem strID = MyMail.EntryID Set olNS = Application.GetNamespace("MAPI") Set msg = olNS.GetItemFromID(strID) ' do stuff with msg, e.g. msg.Attachments(1).SaveAsFile some file name Set msg = Nothing Set rply = Nothing Set olNS = Nothing End Sub -- Sue Mosher, Outlook MVP Author of Microsoft Outlook 2007 Programming: Jumpstart for Power Users and Administrators http://www.outlookcode.com/article.aspx?id=54 "Frank" wrote in message ... Hi, I'm trying to implement a solution that saves all my attachments in a folder automatically. I found the code below that is a good start. However, I have some questions: 1.) How can I make a simple method like the one below visible in the outlook menu or toolbar? 2.) I would like to run a "rule" and execute a script when I receive an email with attachment. I know how to setup the rule. But I don't know how to structure the script to receive the proper input value and execute SaveAs only for this email Any help would be appreciated. Private Sub SaveAttachements() Const olFolderInbox = 6 Set objOutlook = CreateObject("Outlook.Application") Set objNamespace = objOutlook.GetNamespace("MAPI") Set objFolder = objNamespace.GetDefaultFolder(olFolderInbox) Set colItems = objFolder.Items Set objFSO = CreateObject("Scripting.FileSystemObject") On Error Resume Next For Each objMessage In colItems intCount = objMessage.Attachments.Count If intCount 0 Then For i = 1 To intCount strTempFile = objFSO.GetTempName objMessage.Attachments.Item(i).SaveAsFile "C:\mailarchive\attachments\" & strTempFile & "_" & _ objMessage.Attachments.Item(i).FileName Next End If Next End Sub |
|
#4
|
|||
|
|||
|
1) As a macro, public with no arguments.
2) "Older" compared with what? You can work with the attachment itself only after it has been saved. -- Sue Mosher, Outlook MVP Author of Microsoft Outlook 2007 Programming: Jumpstart for Power Users and Administrators http://www.outlookcode.com/article.aspx?id=54 "Frank" wrote in message ... Hi, Thanks for the fast answers. About 1.) How do I need to declare my Sub so that it shows up in the command list? A new question: Is there a way to check the date of the attachment item? I would like to overwrite older attachments. "Sue Mosher [MVP-Outlook]" wrote in message ... 1) View | Toolbars | Customize, then drag your macro from the list of commands to the desired toolbar. 2) In the procedure for a "run a script" rule action, the item being processed is passed as an argument : Sub RunAScriptRuleRoutine(MyMail As MailItem) Dim strID As String Dim olNS As Outlook.NameSpace Dim msg As Outlook.MailItem Dim rply as Outlook.MailItem strID = MyMail.EntryID Set olNS = Application.GetNamespace("MAPI") Set msg = olNS.GetItemFromID(strID) ' do stuff with msg, e.g. msg.Attachments(1).SaveAsFile some file name Set msg = Nothing Set rply = Nothing Set olNS = Nothing End Sub -- Sue Mosher, Outlook MVP Author of Microsoft Outlook 2007 Programming: Jumpstart for Power Users and Administrators http://www.outlookcode.com/article.aspx?id=54 "Frank" wrote in message ... Hi, I'm trying to implement a solution that saves all my attachments in a folder automatically. I found the code below that is a good start. However, I have some questions: 1.) How can I make a simple method like the one below visible in the outlook menu or toolbar? 2.) I would like to run a "rule" and execute a script when I receive an email with attachment. I know how to setup the rule. But I don't know how to structure the script to receive the proper input value and execute SaveAs only for this email Any help would be appreciated. Private Sub SaveAttachements() Const olFolderInbox = 6 Set objOutlook = CreateObject("Outlook.Application") Set objNamespace = objOutlook.GetNamespace("MAPI") Set objFolder = objNamespace.GetDefaultFolder(olFolderInbox) Set colItems = objFolder.Items Set objFSO = CreateObject("Scripting.FileSystemObject") On Error Resume Next For Each objMessage In colItems intCount = objMessage.Attachments.Count If intCount 0 Then For i = 1 To intCount strTempFile = objFSO.GetTempName objMessage.Attachments.Item(i).SaveAsFile "C:\mailarchive\attachments\" & strTempFile & "_" & _ objMessage.Attachments.Item(i).FileName Next End If Next End Sub |
|
#5
|
|||
|
|||
|
Hi,
I got almost everything to work. I would like to overwrite the file in my local folder only if the latest attachment file is newer than the one already stored. Oftentimes, I receive iterations of the same file name. Currently, I'm using a randomizer: Set objFSO = CreateObject("Scripting.FileSystemObject") objMessage.Attachments.Item(i).SaveAsFile "C:\mailarchive\attachments\" & strTempFile & "_" & _ objMessage.Attachments.Item(i).FileName I would like to modify to: IF mylocalfile.date attachement.date THEN SaveAsFile "Sue Mosher [MVP-Outlook]" wrote in message ... 1) As a macro, public with no arguments. 2) "Older" compared with what? You can work with the attachment itself only after it has been saved. -- Sue Mosher, Outlook MVP Author of Microsoft Outlook 2007 Programming: Jumpstart for Power Users and Administrators http://www.outlookcode.com/article.aspx?id=54 "Frank" wrote in message ... Hi, Thanks for the fast answers. About 1.) How do I need to declare my Sub so that it shows up in the command list? A new question: Is there a way to check the date of the attachment item? I would like to overwrite older attachments. "Sue Mosher [MVP-Outlook]" wrote in message ... 1) View | Toolbars | Customize, then drag your macro from the list of commands to the desired toolbar. 2) In the procedure for a "run a script" rule action, the item being processed is passed as an argument : Sub RunAScriptRuleRoutine(MyMail As MailItem) Dim strID As String Dim olNS As Outlook.NameSpace Dim msg As Outlook.MailItem Dim rply as Outlook.MailItem strID = MyMail.EntryID Set olNS = Application.GetNamespace("MAPI") Set msg = olNS.GetItemFromID(strID) ' do stuff with msg, e.g. msg.Attachments(1).SaveAsFile some file name Set msg = Nothing Set rply = Nothing Set olNS = Nothing End Sub -- Sue Mosher, Outlook MVP Author of Microsoft Outlook 2007 Programming: Jumpstart for Power Users and Administrators http://www.outlookcode.com/article.aspx?id=54 "Frank" wrote in message ... Hi, I'm trying to implement a solution that saves all my attachments in a folder automatically. I found the code below that is a good start. However, I have some questions: 1.) How can I make a simple method like the one below visible in the outlook menu or toolbar? 2.) I would like to run a "rule" and execute a script when I receive an email with attachment. I know how to setup the rule. But I don't know how to structure the script to receive the proper input value and execute SaveAs only for this email Any help would be appreciated. Private Sub SaveAttachements() Const olFolderInbox = 6 Set objOutlook = CreateObject("Outlook.Application") Set objNamespace = objOutlook.GetNamespace("MAPI") Set objFolder = objNamespace.GetDefaultFolder(olFolderInbox) Set colItems = objFolder.Items Set objFSO = CreateObject("Scripting.FileSystemObject") On Error Resume Next For Each objMessage In colItems intCount = objMessage.Attachments.Count If intCount 0 Then For i = 1 To intCount strTempFile = objFSO.GetTempName objMessage.Attachments.Item(i).SaveAsFile "C:\mailarchive\attachments\" & strTempFile & "_" & _ objMessage.Attachments.Item(i).FileName Next End If Next End Sub |
|
#6
|
|||
|
|||
|
An attachment in a mail message has no date properties. The only date information available would be the date properties associated with the parent message.
-- Sue Mosher, Outlook MVP Author of Microsoft Outlook 2007 Programming: Jumpstart for Power Users and Administrators http://www.outlookcode.com/article.aspx?id=54 "Frank" wrote in message ... Hi, I got almost everything to work. I would like to overwrite the file in my local folder only if the latest attachment file is newer than the one already stored. Oftentimes, I receive iterations of the same file name. Currently, I'm using a randomizer: Set objFSO = CreateObject("Scripting.FileSystemObject") objMessage.Attachments.Item(i).SaveAsFile "C:\mailarchive\attachments\" & strTempFile & "_" & _ objMessage.Attachments.Item(i).FileName I would like to modify to: IF mylocalfile.date attachement.date THEN SaveAsFile "Sue Mosher [MVP-Outlook]" wrote in message ... 2) "Older" compared with what? You can work with the attachment itself only after it has been saved. "Frank" wrote in message ... A new question: Is there a way to check the date of the attachment item? I would like to overwrite older attachments. |
|
#7
|
|||
|
|||
|
Actually Exchange (when a message is sent between two mailboxes) preserves
PR_LAST_MODIFICATION_TIME and PR_CREATION_TIME on attachments. When a message is received over POP3, these properties are gone obviously. Dmitry Streblechenko (MVP) http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool "Sue Mosher [MVP-Outlook]" wrote in message ... An attachment in a mail message has no date properties. The only date information available would be the date properties associated with the parent message. -- Sue Mosher, Outlook MVP Author of Microsoft Outlook 2007 Programming: Jumpstart for Power Users and Administrators http://www.outlookcode.com/article.aspx?id=54 "Frank" wrote in message ... Hi, I got almost everything to work. I would like to overwrite the file in my local folder only if the latest attachment file is newer than the one already stored. Oftentimes, I receive iterations of the same file name. Currently, I'm using a randomizer: Set objFSO = CreateObject("Scripting.FileSystemObject") objMessage.Attachments.Item(i).SaveAsFile "C:\mailarchive\attachments\" & strTempFile & "_" & _ objMessage.Attachments.Item(i).FileName I would like to modify to: IF mylocalfile.date attachement.date THEN SaveAsFile "Sue Mosher [MVP-Outlook]" wrote in message ... 2) "Older" compared with what? You can work with the attachment itself only after it has been saved. "Frank" wrote in message ... A new question: Is there a way to check the date of the attachment item? I would like to overwrite older attachments. |
|
#8
|
|||
|
|||
|
That would explain why I don't see them, since I was looking at POP3 data. Are the values related to when the attachment itself was originally created or modified as a file or do they reflect when the message itself was created/modified?
-- Sue Mosher, Outlook MVP Author of Microsoft Outlook 2007 Programming: Jumpstart for Power Users and Administrators http://www.outlookcode.com/article.aspx?id=54 "Dmitry Streblechenko" wrote in message ... Actually Exchange (when a message is sent between two mailboxes) preserves PR_LAST_MODIFICATION_TIME and PR_CREATION_TIME on attachments. When a message is received over POP3, these properties are gone obviously. "Sue Mosher [MVP-Outlook]" wrote in message ... An attachment in a mail message has no date properties. The only date information available would be the date properties associated with the parent message. "Frank" wrote in message ... I would like to overwrite the file in my local folder only if the latest attachment file is newer than the one already stored. Oftentimes, I receive iterations of the same file name. Currently, I'm using a randomizer: Set objFSO = CreateObject("Scripting.FileSystemObject") objMessage.Attachments.Item(i).SaveAsFile "C:\mailarchive\attachments\" & strTempFile & "_" & _ objMessage.Attachments.Item(i).FileName I would like to modify to: IF mylocalfile.date attachement.date THEN SaveAsFile "Sue Mosher [MVP-Outlook]" wrote in message ... 2) "Older" compared with what? You can work with the attachment itself only after it has been saved. "Frank" wrote in message ... A new question: Is there a way to check the date of the attachment item? I would like to overwrite older attachments. |
|
#9
|
|||
|
|||
|
Outlook sets them to the real file system dates (ftCreationTime and
ftLastWriteTime). Even under POP3, you should be able to see these properties on the messages in your Sent Items folder. Dmitry Streblechenko (MVP) http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool "Sue Mosher [MVP-Outlook]" wrote in message ... That would explain why I don't see them, since I was looking at POP3 data. Are the values related to when the attachment itself was originally created or modified as a file or do they reflect when the message itself was created/modified? -- Sue Mosher, Outlook MVP Author of Microsoft Outlook 2007 Programming: Jumpstart for Power Users and Administrators http://www.outlookcode.com/article.aspx?id=54 "Dmitry Streblechenko" wrote in message ... Actually Exchange (when a message is sent between two mailboxes) preserves PR_LAST_MODIFICATION_TIME and PR_CREATION_TIME on attachments. When a message is received over POP3, these properties are gone obviously. "Sue Mosher [MVP-Outlook]" wrote in message ... An attachment in a mail message has no date properties. The only date information available would be the date properties associated with the parent message. "Frank" wrote in message ... I would like to overwrite the file in my local folder only if the latest attachment file is newer than the one already stored. Oftentimes, I receive iterations of the same file name. Currently, I'm using a randomizer: Set objFSO = CreateObject("Scripting.FileSystemObject") objMessage.Attachments.Item(i).SaveAsFile "C:\mailarchive\attachments\" & strTempFile & "_" & _ objMessage.Attachments.Item(i).FileName I would like to modify to: IF mylocalfile.date attachement.date THEN SaveAsFile "Sue Mosher [MVP-Outlook]" wrote in message ... 2) "Older" compared with what? You can work with the attachment itself only after it has been saved. "Frank" wrote in message ... A new question: Is there a way to check the date of the attachment item? I would like to overwrite older attachments. |
|
#10
|
|||
|
|||
|
Hi,
How could I retrieve that information programmatically? "Dmitry Streblechenko" wrote in message ... Outlook sets them to the real file system dates (ftCreationTime and ftLastWriteTime). Even under POP3, you should be able to see these properties on the messages in your Sent Items folder. Dmitry Streblechenko (MVP) http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool "Sue Mosher [MVP-Outlook]" wrote in message ... That would explain why I don't see them, since I was looking at POP3 data. Are the values related to when the attachment itself was originally created or modified as a file or do they reflect when the message itself was created/modified? -- Sue Mosher, Outlook MVP Author of Microsoft Outlook 2007 Programming: Jumpstart for Power Users and Administrators http://www.outlookcode.com/article.aspx?id=54 "Dmitry Streblechenko" wrote in message ... Actually Exchange (when a message is sent between two mailboxes) preserves PR_LAST_MODIFICATION_TIME and PR_CREATION_TIME on attachments. When a message is received over POP3, these properties are gone obviously. "Sue Mosher [MVP-Outlook]" wrote in message ... An attachment in a mail message has no date properties. The only date information available would be the date properties associated with the parent message. "Frank" wrote in message ... I would like to overwrite the file in my local folder only if the latest attachment file is newer than the one already stored. Oftentimes, I receive iterations of the same file name. Currently, I'm using a randomizer: Set objFSO = CreateObject("Scripting.FileSystemObject") objMessage.Attachments.Item(i).SaveAsFile "C:\mailarchive\attachments\" & strTempFile & "_" & _ objMessage.Attachments.Item(i).FileName I would like to modify to: IF mylocalfile.date attachement.date THEN SaveAsFile "Sue Mosher [MVP-Outlook]" wrote in message ... 2) "Older" compared with what? You can work with the attachment itself only after it has been saved. "Frank" wrote in message ... A new question: Is there a way to check the date of the attachment item? I would like to overwrite older attachments. |
|
| Thread Tools | |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Saving Photos | B.W. | Outlook Express | 2 | October 20th 07 06:32 AM |
| Stopping automatically saving email adresses to my contacts? | tratan@gmail.com | Outlook - Using Contacts | 1 | August 2nd 06 07:08 PM |
| Automatically saving attachments of a pst into windows folder | Christian Goeller | Outlook - General Queries | 0 | March 28th 06 10:23 AM |
| Saving Attachments | christie.sorenson@gmail.com | Add-ins for Outlook | 0 | January 11th 06 07:27 PM |
| Saving emails | Daniel | Outlook Express | 3 | January 9th 06 01:35 PM |