Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 496
  • Last Modified:

fetch email attachments

is it possible to extract just the attachment out of a email

i have created imap account email user test@ wwwwww.net

which will get two emails daily the emails will only have a subject dbstats1 or dbstat2 and a zip attachment

would like in vbs or python
0
James Murrell
Asked:
James Murrell
1 Solution
 
Éric MoreauSenior .Net ConsultantCommented:
I know you would prefer vbs or python but here is a library you can use from a .Net application: http://www.lesnikowski.com/mail/Index.aspx
0
 
James MurrellProduct SpecialistAuthor Commented:
no to .net now development tools / not enough learning time
0
 
David LeeCommented:
Hi, cs97jjm3.

What email client do you have on your computer?  If it's Outlook, then I can show you how to script this using VBScript.
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
James MurrellProduct SpecialistAuthor Commented:
thunderbird... but could setup outlook, but ideally not.....

0
 
David LeeCommented:
Sorry, don't know anything about Thunderbird other than what it is.  If you decide to use Outlook, then I'll be glad to help.
0
 
James MurrellProduct SpecialistAuthor Commented:
Outlook express ok?

0
 
David LeeCommented:
Outlook Express isn't programmable.  Only the full version of Outlook.
0
 
James MurrellProduct SpecialistAuthor Commented:
ok can use outlook if need be? 2003 ok

0
 
David LeeCommented:
Outlook 2003 is fine.  Here's the code.  Follow these instructions to use this.

1.  Open Notepad
2.  Copy the code in the snippet  
3.  Paste the code into Notepad
4.  Edit the code as needed.  I placed comments where things can or should change.
5.  Save the file with a .vbs extension
6.  Run the code by double-clicking on the file

The code uses Outlook to check all messages in the inbox.  If a message has a subject of "dbstats1" or "dbstats2", then the code saves all the message attachments to the folder of your choice.
Dim olkApp, olkSes, olkFld, olkMsg, olkAtt
Set olkApp = CreateObject("Outlook.Application")
Set olkSes = olkApp.GetNameSpace("MAPI")
'Change the profile name on the next line'
olkSes.Logon "Outlook"
Set olkFld = olkSes.GetDefaultFolder(6)
For Each olkMsg in olkFld.Items
    Select Case LCase(olkMsg.Subject)
        Case "dbstats1", "dbstats2"
            For Each olkAtt in olkMsg.Attachments
                'Change the path on the next line as desired'
                olkAtt.SaveAsFile "C:\Some Folder\" & olkAtt.Filename
            Next
    End Select
Next
Set olkAtt = Nothing
Set olkMsg = Nothing
Set olkFld = Nothing
olkSes.Logoff
Set olkSes = Nothing
Set olkApp = Nothing

Open in new window

0
 
James MurrellProduct SpecialistAuthor Commented:
silly question, does outlook have to be open? if so can code do that... and do a send and recieve
0
 
James MurrellProduct SpecialistAuthor Commented:
ok ignore last comment

Set oShell = CreateObject("WScript.Shell")
oShell.Run "outlook"

did the trick -


but can code mark to delete? or delete

ps: cheers for this
0
 
David LeeCommented:
"does outlook have to be open?"
No, the code launches Outlook in the background.  Your solution will work too.

"and do a send and recieve"
No.  Your solution does that though.

"can code mark to delete? or delete"
Yes, the code can delete the item.  I revised the code to delete the item after processing.
Dim olkApp, olkSes, olkFld, olkMsg, olkAtt, intIndex
Set olkApp = CreateObject("Outlook.Application")
Set olkSes = olkApp.GetNameSpace("MAPI")
'Change the profile name on the next line'
olkSes.Logon "Outlook"
Set olkFld = olkSes.GetDefaultFolder(6)
For intIndex = olkFld.Items.Count to 1 Step -1
    Set olkMsg = olkFld.Items.Item(intIndex)
    Select Case LCase(olkMsg.Subject)
        Case "dbstats1", "dbstats2"
            For Each olkAtt in olkMsg.Attachments
                'Change the path on the next line as desired'
                olkAtt.SaveAsFile "C:\Some Folder\" & olkAtt.Filename
            Next
            olkMsg.Delete
    End Select
Next
Set olkAtt = Nothing
Set olkMsg = Nothing
Set olkFld = Nothing
olkSes.Logoff
Set olkSes = Nothing
Set olkApp = Nothing

Open in new window

0
 
James MurrellProduct SpecialistAuthor Commented:
Thanks you for you help, you explain the code very well a star a ee i would say
0
 
David LeeCommented:
Thank you!  Glad I could help out.
0
 
alam747Commented:
Please let me know how to filter only the attached of daily data like todays data not all of the attached email.  Thanks for your co-operation and understanding.
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now