View Single Post
Old 02-25-2008   #5 (permalink)
Shay Levi


 
 

Re: Reading Outlook Messages

I just wanted to check if you get the correct number of messages, the sender
email address is not important.
Anyway, do you get the same message "cannot read..." when you manually try
to read the messages in Outlook?

-----
Shay Levi
$cript Fanatic
http://scriptolog.blogspot.com
Quote:

> Hey Shay,
>
> problem is - all mails sent to me, are from "Systemadministrator". So
> I would
> get nowhere from doing that.
> The e-mail address I need to extract is listed in the body of the
> e-mail.
> Anyway - only property I can even remotely relate to the sender, would
> be the userproperties property.
>
> Or is there some other property I should go for ?
>
> Best Regards,
> Jacob Saaby Nielsen
> http://www.pipforhelvede.net
> gmail: jacob DOT saaby
> hotmail (IM/LinkedIN/Facebook): same as gmail
Quote:

>> Can you try to list email senders only (don't process the body) ? How
>> many do you get?
>>
>> -----
>> Shay Levi
>> $cript Fanatic
>> http://scriptolog.blogspot.com
Quote:

>>> Hey guys,
>>>
>>> I'm doing this script, and as such it works ok. However, the script
>>> is
>>> counting
>>> 766 mails that match the subject filter,
>>> and I'm only getting 247 e-mail addresses from the script.
>>> So I poked around a bit, and noticed that a lot of the e-mail
>>> messages
>>> has
>>> a "This item cannot be displayed in the reading
>>> pane". Seems when I run the script, Outlook reaches a point where I
>>> have
>>> too many open messages at the same time.
>>> Anybody got a take on how to get around this ?
>>> I'm pasting my sourcecode so you have the option of commenting my
>>> code, what
>>> to improve, or specifically how to get
>>> around this "problem".
>>> #
>>> ====================================================================
>>> =
>>> =
>>> ==========================================
>>> #
>>> # Script Information
>>> #
>>> # Title: NDRs.ps1
>>> # Author: Jacob Saaby Nielsen ()
>>> # Originally created: 06-02-2008 - 11:25:18
>>> # Description: Extracts e-mail addresses and error-codes from NDR
>>> mails,
>>> from a folder in Outlook
>>> #
>>> #
>>> ====================================================================
>>> =
>>> =
>>> ==========================================
>>> #-------- Configurable Settings --------
>>> # $subjectFilter needs to contain the word/words of the subject you
>>> want
>>> to match
>>> $subjectFilter = "User Forum"
>>> # $NDRFolderName is the name of the folder in which you store the
>>> NDRs. Folder
>>> needs to be at the folderlevel just beneath Inbox
>>> $NDRFolderName = "Undelivered"
>>> # $NDRResultsFolder is the folder in which you want your results
>>> file
>>> located.
>>> End with a backslash.
>>> $NDRResultsFolder = "c:\"
>>> # $NDRResultsFile is the name of the results file
>>> $NDRResultsFile = "ndr-list.csv"
>>> #-------- Non-configurable Settings - Do not change anything after
>>> this line --------
>>> # Instantiating Outlook etc.
>>> $olFolderInbox = 6;
>>> $outlook = New-Object -com outlook.application;
>>> $ns = $outlook.GetNameSpace("MAPI");
>>> $NDRs =
>>> $ns.GetDefaultFolder($olFolderInbox).Folders.Item("$NDRFolderName")
>>> CLS
>>> Write-Host 'Getting total number of eAlert mails...'
>>> # Filter out all the files that are not meeting your subject filter
>>> $eAlertMails = $NDRs.Items | where {$_.Subject -match
>>> $subjectFilter}
>>> # Returns e-mail address from the message body, based on a regular
>>> expression
>>> function get-Email([string]$MailBody)
>>> {
>>> $Regex = [regex]
>>> "([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-
>>> z
>>> A
>>> -Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})"
>>> $Match = $Regex.Match($MailBody)
>>> return $Match.Value
>>> }
>>> [int]$MailCounter = 1
>>> foreach ($eAlertMail in $eAlertMails.Items)
>>> {
>>> # Create and update the progress bar
>>> $status = "Processing mail {0} of {1}" -f $MailCounter,
>>> $eAlertMails.Count
>>> Write-Progress $status -PercentComplete ((100 / $eAlertMails.Count)
>>> *
>>> $MailCounter
>>> ) -Activity "Processing e-mails" -ID 1
>>> # Add the string to the results file
>>> Add-Content -path $NDRResultsFolder$NDRResultsFile -value (get-Email
>>> $eAlertMail.Body)
>>> # Increment $MailCounter
>>> $MailCounter++
>>> }
>>> Best Regards,
>>> Jacob Saaby Nielsen
>>> http://www.pipforhelvede.net
>>> gmail: jacob DOT saaby
>>> hotmail (IM/LinkedIN/Facebook): same as gmail

My System SpecsSystem Spec