Macro to extract sender name & subject line of incoming emails to single txt file

Chris0815

New Member
Outlook version
Outlook 2013 64 bit
Email Account
Exchange Server 2013
Hello,

I'm using Outlook 2013 and trying to create a macro which extracts (only) the sender name and subject line of new incoming emails to/on top of one/single .txt file. If a new incoming email arrives the sender and subject line are added on top of the same/existing .txt file, stored on my PC. Outlook will be running in the background. I'm struggling to get newly arriving emails selected for execution of the macro.

I have tried/combined some of the many samples on this homepage but still struggle to get a macro that extracts the sender and subject of the latest incoming emails on top of one/single .txt file. Below some parts of code which I would like to work with.

////////

sName = "MailExtract" strFile = "c:\path\" & sName & ".txt" .Write "Sender: " & objItem.Sender & vbCrLf .Write "Subject: " & objItem.Subject & vbCrLf & vbCrLf

////////

Any advice will be highly appreciated. As alternative to macro I was looking into executing a script (via rule) but it seems to be more difficult to extract/copy/paste sender/subject lines from incoming emails.


I am aware there might be issues e.g. when receiving 2 or more emails within short period of time. However, this is not a major concern and i would be happy if sender name/subject of at least 1 newly arriving email could be extracted to txt file.

My final goal: I have a VB program/.exe serial port communication tool created which does every 1 or 2 minutes load 1 line for sender and 2nd line for the subject to individual text boxes. From there it is send via serial to a connected bluetooth receiver/port which is connected to a LED Matrix display which will show latest/newest sender/subject line mentioned on top of the .txt file.

Thanks in advance for any advice.

Kind Regards,

Chris
 

Diane Poremsky

Senior Member
Outlook version
Outlook 2016 32 bit
Email Account
Office 365 Exchange
A rule should work once you get the macro working - switching it to a macro that runs from a rule is fairly easy.

>> sName = "MailExtract" strFile = "c:\path\" & sName & ".txt
If the file name is always the same, you don't need to us a variable - just use the name.
strFile = "c:\path\mailextract.txt"

This works here -

Code:
Sub SaveMessageLog()
  
   Dim InBoxFolder As Outlook.folder
   Dim InBoxItems As Outlook.Items
   Dim Item As MailItem
  
   Dim objFS As New Scripting.FileSystemObject, objFile As Scripting.TextStream
   Dim strFile As String

' Use the default folder
Set InBoxFolder = Session.GetDefaultFolder(olFolderInbox)

' Use the selected folder
'Set InBoxFolder = Application.ActiveExplorer.CurrentFolder

' ===============
  strFile = "D:\diane\Documents\Inbox.txt"
  
Set objFile = objFS.OpenTextFile(strFile, ForAppending, True)

' ==================
   ' Get all of the items in the folder
  Set InBoxItems = InBoxFolder.Items
  For Each Item In InBoxItems
      
With objFile
 .Write "Sender: " & Item.Sender & vbCrLf
 .Write "Subject: " & Item.Subject & vbCrLf
 .Write vbCrLf & vbCrLf
End With
 
  Next
  objFile.Close
  
  Set objFS = Nothing
  Set objFile = Nothing
 
   Set Item = Nothing
   Set InBoxItems = Nothing
   Set InBoxFolder = Nothing
  
End Sub


This should work as a rule - I don't think I missed anything, but I didn't test it yet (need to enabled run a script on this new computer first)
Run-a-Script Rules Missing in Outlook


Code:
Sub SaveMessageLogRule(Item As MailItem)
  
   Dim objFS As New Scripting.FileSystemObject, objFile As Scripting.TextStream
   Dim strFile As String

' ===============
  strFile = "D:\diane\Documents\Inbox2.txt"
  
Set objFile = objFS.OpenTextFile(strFile, ForAppending, True)

' ==================
With objFile
 .Write "Sender: " & Item.Sender & vbCrLf
 .Write "Subject: " & Item.Subject & vbCrLf
 .Write vbCrLf & vbCrLf
End With
 
  Next
  objFile.Close
  
  Set objFS = Nothing
  Set objFile = Nothing
 
   Set Item = Nothing
End Sub
 

Chris0815

New Member
Outlook version
Outlook 2013 64 bit
Email Account
Exchange Server 2013
Many thanks and I got the script working (just had to remove "Next"). I really appreciate your fast and uncomplicated help on an issue I spent days with....
 

Diane Poremsky

Senior Member
Outlook version
Outlook 2016 32 bit
Email Account
Office 365 Exchange
oops. Sorry I missed that line when I was cleaning it up.
 
Similar threads
Thread starter Title Forum Replies Date
J Outlook 2013 Extract Flag Completed dates to Excel Macro Outlook VBA and Custom Forms 16
witzker HowTo start a macro with an Button in OL contact form Outlook VBA and Custom Forms 12
witzker Macro to move @domain.xx of a Spammail to Blacklist in Outlook 2019 Outlook VBA and Custom Forms 6
S Macro for other actions - Outlook 2007 Outlook VBA and Custom Forms 23
L Macro/VBA to Reply All, with the original attachments Outlook VBA and Custom Forms 2
S Macro to move “Re:” & “FWD:” email recieved the shared inbox to a subfolder in outlook Outlook VBA and Custom Forms 0
S Outlook Macro to send auto acknowledge mail only to new mails received to a specific shared inbox Outlook VBA and Custom Forms 0
S Outlook Macro to move reply mail based on the key word in the subjectline Outlook VBA and Custom Forms 0
Eike Move mails via macro triggered by the click of a button? Outlook VBA and Custom Forms 0
S Macro or plug-in to see if specific person was included in this email Outlook VBA and Custom Forms 4
U Macro for reminders,tasks,calendar Outlook VBA and Custom Forms 4
V macro runs slower on startup than after Outlook VBA and Custom Forms 3
N Macro to move all recipients to CC while replying Outlook VBA and Custom Forms 0
A VBA macro for 15 second loop in send and received just for 1 specific mailbox Outlook VBA and Custom Forms 1
G VBA Macro Calendar Printing Assistant 4
R Help Revising VBA macro to delete email over different time span Outlook VBA and Custom Forms 0
M Outlook macro to automate search and forward process Outlook VBA and Custom Forms 6
R Macro Schedule every day in Outlook Using Outlook 0
L Moving emails with similar subject and find the timings between the emails using outlook VBA macro Outlook VBA and Custom Forms 1
Healy Consultants Macro to remove inside organization distribution list email address when reply to all recepients Outlook VBA and Custom Forms 0
geofferyh Cannot get Macro to SAVE more than one message attachment??? Outlook VBA and Custom Forms 5
N How can I increase/faster outlook VBA Macro Speed ? Using Outlook 2
4 Macro to set the category of Deleted Item? Outlook VBA and Custom Forms 2
D.Moore Folder view settings by VBA macro Outlook VBA and Custom Forms 57
A Outlook macro to create search folder with mail categories as criteria Outlook VBA and Custom Forms 3
Dave A Run macro on existing appointment when it changes Outlook VBA and Custom Forms 1
V Outlook Macro to show Flagged messages Outlook VBA and Custom Forms 2
O Run macro automatically at sending an email Using Outlook 11
R Retain Original Message When Forwarding With Macro Outlook VBA and Custom Forms 3
C Macro to add multiple recipients to message Outlook VBA and Custom Forms 3
B Reply and replyall macro is not working Outlook VBA and Custom Forms 1
O Macro - paste as plain text Outlook VBA and Custom Forms 2
J Help Please!!! Outlook 2016 - VBA Macro for replying with attachment in meeting invite Outlook VBA and Custom Forms 9
witzker Macro to set contact reminder to next day 9:00 Outlook VBA and Custom Forms 45
M Adding Macro to populate "to" "subject" "body" not deleting email string below. Outlook VBA and Custom Forms 5
E Copying data from e-mail attachement to EXCEL file via macro Outlook VBA and Custom Forms 38
M Macro to add date/time stamp to subject Outlook VBA and Custom Forms 4
R VBA macro - new message Outlook VBA and Custom Forms 3
S Example VBA Macro - To Conditionally Change the From Account and Add a BCC Address on Emails Outlook VBA and Custom Forms 11
S Macro using .SendUsingAccount only works the first time, after starting Outlook Outlook VBA and Custom Forms 4
S VBA Macro - Run-time error '424': object required - Help Please Outlook VBA and Custom Forms 3
B VBA Macro for assigning multiple Categories to an email in my Inbox Outlook VBA and Custom Forms 1
N Macro for attachment saved and combine Outlook VBA and Custom Forms 1
Sabastian Samuel HOW DO I FORWARD AN EMAIL WITH MACRO using an email that in the body of another email Outlook VBA and Custom Forms 3
C Search with Google Macro? Outlook VBA and Custom Forms 4
M Slow VBA macro in Outlook Outlook VBA and Custom Forms 5
D Print Attachments only in selected emails using a macro Outlook VBA and Custom Forms 3
M Macro for attachments download adjustment Outlook VBA and Custom Forms 3
M VBA macro for Inbox's attachments search Outlook VBA and Custom Forms 0
B Macro to manually move selected emails to network folder Outlook VBA and Custom Forms 1

Similar threads

Top