![]() |
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. |
|
|
|
Thread Tools | Search this Thread | Display Modes |
#11
|
|||
|
|||
![]()
Ken:
Declaring it as an object worked. I am including the code below which also includes a browser supported function in case anyone has the same problem they can find it. Thank you for your help. Chris '-----CODE START----- Public Sub ExportSAR() Dim TheEmail As Object Dim ReportEmail As ReportItem Dim eItem As Outlook.Items Dim EmailNS As NameSpace Dim fldrCount, EmailPath2, NbrItem, myfolder Dim strSubj, strTime, mailClassCheck, EmailPath As String Dim NewFileName, ReportHeader As String Dim Cats Dim CheckErr, Exists As Boolean CheckErr = False Set EmailNS = Application.GetNamespace("MAPI") Set myfolder = Application.ActiveExplorer.CurrentFolder NbrItem = myfolder.Items.Count On Error GoTo Error_Handler EmailPath = BrowseForFolderShell MsgBox EmailPath 'EmailPath = InputBox("Enter the save folder location:", "Email Save Path", CurDir) For i = 1 To NbrItem Set TheEmail = Application.ActiveExplorer.CurrentFolder.Items.Ite m(i) mailClassCheck = TheEmail.MessageClass If Left(mailClassCheck, 6) = "REPORT" Then Set ReportEmail = Application.ActiveExplorer.CurrentFolder.Items.Ite m(i) If ReportEmail.Subject = "" Then strSubj = "no subject" If Right(ReportEmail.MessageClass, 2) = "DR" Then ReportHeader = "DeliveryReport" Else ReportHeader = "Read Receipt" strSubj = Replace(ReportEmail.Subject, "/", "-") strSubj = Replace(strSubj, "\", "-") strSubj = Replace(strSubj, ":", "--") strSubj = Replace(strSubj, "?", sReplace) strSubj = Replace(strSubj, Chr(34), sReplace) strSubj = Replace(strSubj, "", sReplace) strSubj = Replace(strSubj, "", sReplace) strSubj = Replace(strSubj, "|", sReplace) strTime = Replace(ReportEmail.CreationTime, "/", "-") strTime = Replace(strTime, "\", "-") strTime = Replace(strTime, ":", ".") strTime = Replace(strTime, "?", sReplace) strTime = Replace(strTime, Chr(34), sReplace) strTime = Replace(strTime, "", sReplace) strTime = Replace(strTime, "", sReplace) strTime = Replace(strTime, "|", sReplace) NewFileName = ReportHeader & "_" & strSubj & strTime & ".msg" If NewFileName "" Then ReportEmail.SaveAs EmailPath & NewFileName, olMSG Else MsgBox "No file name was entered. Operation aborted.", 64, "Cancel Operation" Exit Sub End If GoTo Step1 End If If TheEmail.Subject = "" Then strSubj = "no subject" strSubj = Replace(TheEmail.Subject, "/", "-") strSubj = Replace(strSubj, "\", "-") strSubj = Replace(strSubj, ":", "--") strSubj = Replace(strSubj, "?", sReplace) strSubj = Replace(strSubj, Chr(34), sReplace) strSubj = Replace(strSubj, "", sReplace) strSubj = Replace(strSubj, "", sReplace) strSubj = Replace(strSubj, "|", sReplace) strTime = Replace(TheEmail.ReceivedTime, "/", "-") strTime = Replace(strTime, "\", "-") strTime = Replace(strTime, ":", ".") strTime = Replace(strTime, "?", sReplace) strTime = Replace(strTime, Chr(34), sReplace) strTime = Replace(strTime, "", sReplace) strTime = Replace(strTime, "", sReplace) strTime = Replace(strTime, "|", sReplace) NewFileName = TheEmail.SenderName & "_" & strTime & "_" & strSubj & ".msg" If NewFileName "" Then TheEmail.SaveAs EmailPath & NewFileName, olMSG Else MsgBox "No file name was entered. Operation aborted.", 64, "Cancel Operation" Exit Sub End If Step1: strSubj = "" strTime = "" Next i GoTo Done Error_Handler: If TheEmail Is Nothing Then MsgBox Err.Number & ":" & Err.Description Else MsgBox TheEmail.MessageClass & Chr$(13) & TheEmail.Subject & Chr$(13) & Err.Number & ": " & Err.Description TheEmail.Categories = TheEmail.Categories & ";" & "Not Copied" TheEmail.Save End If Resume Next Done: End Sub Public Function BrowseForFolderShell(Optional Hwnd As Long = 0, Optional sTitle As String = "Browse for Folder", Optional BIF_Options As Integer, Optional vRootFolder As Variant) As String Dim objShell As Object Dim objFolder As Variant Dim strFolderFullPath As String Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.BrowseForFolder(Hwnd, sTitle, BIF_Options, vRootFolder) If (Not objFolder Is Nothing) Then '// NB: If SpecFolder= 0 = Desktop then .... On Error Resume Next If IsError(objFolder.Items.Item.Path) Then strFolderFullPath = CStr(objFolder): GoTo GotIt On Error GoTo 0 '// Is it the Root Dir?...if so change If Len(objFolder.Items.Item.Path) 3 Then strFolderFullPath = objFolder.Items.Item.Path '& Application.PathSeparator Else strFolderFullPath = objFolder.Items.Item.Path '& Application. End If Else '// User cancelled GoTo XitProperly End If GotIt: BrowseForFolderShell = strFolderFullPath & "\" XitProperly: Set objFolder = Nothing Set objShell = Nothing End Function '-----CODE END----- "Ken Slovak - [MVP - Outlook]" wrote: I'm wondering if possibly declaring TheEmail as Object rather than MailItem would be helpful. Do you ever hit the error handler code? If you do it could be because instantiating a MailItem object from a report item would fire an exception. -- Ken Slovak [MVP - Outlook] http://www.slovaktech.com Author: Professional Programming Outlook 2007. Reminder Manager, Extended Reminders, Attachment Options. http://www.slovaktech.com/products.htm "Chris" wrote in message ... OK Ken, It seems so close and yet so far away. I am doing the message class but anytime it htis a delivery report or read receipt, I cannot get the message class. I have a check to add the category "Not Copied" (it exists in the list) and it will change the category of the message prior to the receipt. The message box never displays a "REPORT" message class just "IPM.NOTE" and the out of office one. I am including the code and am hoping a light will shine on the error in the code. Thanks for your continued assistance. Chris -----CODE START----- Dim TheEmail As Outlook.MailItem Dim eItem As Outlook.Items Dim EmailNS As NameSpace Dim fldrCount, EmailPath2, NbrItem, myfolder Dim strSubj, strTime, mailClassCheck, EmailPath As String Dim NewFileName As String Dim Cats Dim CheckErr, Exists As Boolean CheckErr = False Set EmailNS = Application.GetNamespace("MAPI") Set myfolder = Application.ActiveExplorer.CurrentFolder NbrItem = myfolder.Items.Count On Error GoTo Error_Handler 'EmailPath = InputBox("Enter the save folder location:", "Email Save Path", CurDir) EmailPath = "C:\users\CMPurdom\Desktop\Mail Burn\Tester\" For i = 1 To NbrItem Set TheEmail = Application.ActiveExplorer.CurrentFolder.Items.Ite m(i) mailClassCheck = TheEmail.MessageClass MsgBox mailClassCheck If Right(mailClassCheck, 6) = "REPORT" Then SaveMailAsFile TheEmail, olSaveAsMsg, "C:\users\CMPurdom\Desktop\Mail Burn\Testers\" GoTo Step1 End If If TheEmail.Subject = "" Then strSubj = "no subject" strSubj = Replace(TheEmail.Subject, "/", "-") strSubj = Replace(strSubj, "\", "-") strSubj = Replace(strSubj, ":", "--") strSubj = Replace(strSubj, "?", sReplace) strSubj = Replace(strSubj, Chr(34), sReplace) strSubj = Replace(strSubj, "", sReplace) strSubj = Replace(strSubj, "", sReplace) strSubj = Replace(strSubj, "|", sReplace) strTime = Replace(TheEmail.ReceivedTime, "/", "-") strTime = Replace(strTime, "\", "-") strTime = Replace(strTime, ":", ".") strTime = Replace(strTime, "?", sReplace) strTime = Replace(strTime, Chr(34), sReplace) strTime = Replace(strTime, "", sReplace) strTime = Replace(strTime, "", sReplace) strTime = Replace(strTime, "|", sReplace) 'SaveMailAsFile TheEmail, olSaveAsMsg, "C:\users\CMPurdom\Desktop\Mail Burn\Testers\" NewFileName = TheEmail.SenderName & "_" & strTime & "_" & strSubj & ".msg" If NewFileName "" Then TheEmail.SaveAs EmailPath & NewFileName, olMSG Else MsgBox "No file name was entered. Operation aborted.", 64, "Cancel Operation" Exit Sub End If Step1: Next i GoTo Done Error_Handler: MsgBox TheEmail.MessageClass & Chr$(13) & TheEmail.Subject & Chr$(13) & Err.Number & ": " & Err.Description TheEmail.Categories = TheEmail.Categories & ";" & "Not Copied" TheEmail.Save Resume Next Done: End Sub -----CODE END----- . |
Ads |
|
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
MailItem SaveAs | Koen Verwimp | Add-ins for Outlook | 2 | September 22nd 08 02:41 PM |
MailItem.SaveAs encoding characters wrong from HTML message | MattS | Outlook and VBA | 3 | April 1st 08 03:26 PM |
MailItem.SaveAs method | Mrunali | Outlook - Using Forms | 0 | April 17th 07 04:16 PM |
_MailItem - SaveAs | MON205 | Add-ins for Outlook | 1 | February 22nd 07 07:01 PM |
How can I create a MailItem that displays like a received MailItem ? | Clive | Outlook - Using Forms | 0 | February 27th 06 05:14 PM |