![]() |
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 |
#1
|
|||
|
|||
![]()
Is there a way to get the SenderName Value via code?
From what I can tell, this is trapped behind some of the security features in Outlook. I am wanting to reference this value so I can utilize it in an effort to make an archiving macro. Any help is greatly appreciated. Mark Ivey |
Ads |
#2
|
|||
|
|||
![]()
Outlook version? Code environment for your project?
-- Sue Mosher, Outlook MVP Author of Configuring Microsoft Outlook 2003 http://www.turtleflock.com/olconfig/index.htm and Microsoft Outlook Programming - Jumpstart for Administrators, Power Users, and Developers http://www.outlookcode.com/jumpstart.aspx "Mark Ivey" wrote in message ... Is there a way to get the SenderName Value via code? From what I can tell, this is trapped behind some of the security features in Outlook. I am wanting to reference this value so I can utilize it in an effort to make an archiving macro. Any help is greatly appreciated. Mark Ivey |
#3
|
|||
|
|||
![]()
On Wed, 16 May 2007 17:41:52 -0500, "Mark Ivey"
wrote: Is there a way to get the SenderName Value via code? From what I can tell, this is trapped behind some of the security features in Outlook. I am wanting to reference this value so I can utilize it in an effort to make an archiving macro. Any help is greatly appreciated. Mark Ivey There is a very easy way to do this. Just save the email message to a file. There will be a line in the file "Sender: Fred J. Muggs " plus the sender's email. Use the split command on the line with a colon as the separator. Take a look at the file and there will be a number of fields in there. With a little program to loop through the fields in the text file, you may be able to get everything you need very easily. By using the spilit command and the resulting array, you will get the field name and the field value in the array. Then, you can process each field as you like. Depending on your needs, it can be a good solution. Greg |
#4
|
|||
|
|||
![]()
Outlook version?
I am designing it at home in Outlook 2002, but plan on using it at work for Outlook 2003. Code environment for your project? VBA (and VBS if needed). "Sue Mosher [MVP-Outlook]" wrote in message ... Outlook version? Code environment for your project? -- Sue Mosher, Outlook MVP Author of Configuring Microsoft Outlook 2003 http://www.turtleflock.com/olconfig/index.htm and Microsoft Outlook Programming - Jumpstart for Administrators, Power Users, and Developers http://www.outlookcode.com/jumpstart.aspx "Mark Ivey" wrote in message ... Is there a way to get the SenderName Value via code? From what I can tell, this is trapped behind some of the security features in Outlook. I am wanting to reference this value so I can utilize it in an effort to make an archiving macro. Any help is greatly appreciated. Mark Ivey |
#5
|
|||
|
|||
![]()
Greg,
I appreciate your feedback, but I wasn't planning on saving the email to a file outside of Outlook. My plan is to be able to select one or more emails and click on a button (to fire a macro) and have these emails sent to their appropriate backup folder in my Personal folder list. For example: If I select and email from John Brown, and then click on this button. I would expect this email to be moved to my personal folder "2007" and into a subfolder labeled "John Brown". If someone has already invented the wheel with respect to what I am needing, I would greatly appreciate some code snippets (VBA preferably). TIA... Mark Ivey "Greg" wrote in message ... On Wed, 16 May 2007 17:41:52 -0500, "Mark Ivey" wrote: Is there a way to get the SenderName Value via code? From what I can tell, this is trapped behind some of the security features in Outlook. I am wanting to reference this value so I can utilize it in an effort to make an archiving macro. Any help is greatly appreciated. Mark Ivey There is a very easy way to do this. Just save the email message to a file. There will be a line in the file "Sender: Fred J. Muggs " plus the sender's email. Use the split command on the line with a colon as the separator. Take a look at the file and there will be a number of fields in there. With a little program to loop through the fields in the text file, you may be able to get everything you need very easily. By using the spilit command and the resulting array, you will get the field name and the field value in the array. Then, you can process each field as you like. Depending on your needs, it can be a good solution. Greg |
#6
|
|||
|
|||
![]()
Outlook 2002 VBA will give you security prompts, but Outlook 2003 won't, as long as you derive all objects from the intrinsic Application object.
Greg's suggestion doesn't help, BTW, because the SaveAs method triggers a security prompt. -- Sue Mosher, Outlook MVP Author of Configuring Microsoft Outlook 2003 http://www.turtleflock.com/olconfig/index.htm and Microsoft Outlook Programming - Jumpstart for Administrators, Power Users, and Developers http://www.outlookcode.com/jumpstart.aspx "Mark Ivey" wrote in message ... I am designing it at home in Outlook 2002, but plan on using it at work for Outlook 2003. VBA (and VBS if needed). Is there a way to get the SenderName Value via code? From what I can tell, this is trapped behind some of the security features in Outlook. I am wanting to reference this value so I can utilize it in an effort to make an archiving macro. |
#7
|
|||
|
|||
![]()
Thanks for the info Sue...
Here is some code I found and altered a bit on the web from Eric Legault - B.A, MCP, MCSD, Outlook MVP. My problem is not knowing how to reference the subfolder I need due to these security items I have mentioned. Do you think the code below should work for Outlook 2003? If not, could you make a suggestion. My biggest concern is this line: "Set objFolder = Outlook.Session.Folders("2007" & objItem.SenderName)" How do I reference a subfolder in my personal folders list with the variable "SenderName"? '_________________________________________________ _________________________________ Sub MoveSelectedMessagesToFolder() On Error Resume Next Dim objFolder As Outlook.MAPIFolder, objInbox As Outlook.MAPIFolder Dim objNS As Outlook.NameSpace, objItem As Outlook.MailItem Set objNS = Application.GetNamespace("MAPI") Set objInbox = objNS.GetDefaultFolder(olFolderInbox) Set objFolder = Outlook.Session.Folders("2007" & objItem.SenderName) If objFolder Is Nothing Then MsgBox "This folder doesn't exist!", vbOKOnly + vbExclamation, "INVALID FOLDER" End If If Application.ActiveExplorer.Selection.Count = 0 Then 'Require that this procedure be called only when a message is selected Exit Sub End If For Each objItem In Application.ActiveExplorer.Selection If objFolder.DefaultItemType = olMailItem Then If objItem.Class = olMail Then objItem.Move objFolder End If End If Next Set objItem = Nothing Set objFolder = Nothing Set objInbox = Nothing Set objNS = Nothing End Sub '_________________________________________________ _________________________________ "Sue Mosher [MVP-Outlook]" wrote in message ... Outlook 2002 VBA will give you security prompts, but Outlook 2003 won't, as long as you derive all objects from the intrinsic Application object. Greg's suggestion doesn't help, BTW, because the SaveAs method triggers a security prompt. -- Sue Mosher, Outlook MVP Author of Configuring Microsoft Outlook 2003 http://www.turtleflock.com/olconfig/index.htm and Microsoft Outlook Programming - Jumpstart for Administrators, Power Users, and Developers http://www.outlookcode.com/jumpstart.aspx "Mark Ivey" wrote in message ... I am designing it at home in Outlook 2002, but plan on using it at work for Outlook 2003. VBA (and VBS if needed). Is there a way to get the SenderName Value via code? From what I can tell, this is trapped behind some of the security features in Outlook. I am wanting to reference this value so I can utilize it in an effort to make an archiving macro. |
#8
|
|||
|
|||
![]()
Session.Folders returns the collection of top-level folders, i.e. all the individual .pst files or mailboxes. To get a non-default folder, you need to walk the folder hierarchy starting with that collections or use a function that does that for you. See http://www.outlookcode.com/d/code/getfolder.htm
-- Sue Mosher, Outlook MVP Author of Configuring Microsoft Outlook 2003 http://www.turtleflock.com/olconfig/index.htm and Microsoft Outlook Programming - Jumpstart for Administrators, Power Users, and Developers http://www.outlookcode.com/jumpstart.aspx "Mark Ivey" wrote in message ... Thanks for the info Sue... Here is some code I found and altered a bit on the web from Eric Legault - B.A, MCP, MCSD, Outlook MVP. My problem is not knowing how to reference the subfolder I need due to these security items I have mentioned. Do you think the code below should work for Outlook 2003? If not, could you make a suggestion. My biggest concern is this line: "Set objFolder = Outlook.Session.Folders("2007" & objItem.SenderName)" How do I reference a subfolder in my personal folders list with the variable "SenderName"? '_________________________________________________ _________________________________ Sub MoveSelectedMessagesToFolder() On Error Resume Next Dim objFolder As Outlook.MAPIFolder, objInbox As Outlook.MAPIFolder Dim objNS As Outlook.NameSpace, objItem As Outlook.MailItem Set objNS = Application.GetNamespace("MAPI") Set objInbox = objNS.GetDefaultFolder(olFolderInbox) Set objFolder = Outlook.Session.Folders("2007" & objItem.SenderName) If objFolder Is Nothing Then MsgBox "This folder doesn't exist!", vbOKOnly + vbExclamation, "INVALID FOLDER" End If If Application.ActiveExplorer.Selection.Count = 0 Then 'Require that this procedure be called only when a message is selected Exit Sub End If For Each objItem In Application.ActiveExplorer.Selection If objFolder.DefaultItemType = olMailItem Then If objItem.Class = olMail Then objItem.Move objFolder End If End If Next Set objItem = Nothing Set objFolder = Nothing Set objInbox = Nothing Set objNS = Nothing End Sub '_________________________________________________ _________________________________ "Sue Mosher [MVP-Outlook]" wrote in message ... Outlook 2002 VBA will give you security prompts, but Outlook 2003 won't, as long as you derive all objects from the intrinsic Application object. Greg's suggestion doesn't help, BTW, because the SaveAs method triggers a security prompt. "Mark Ivey" wrote in message ... I am designing it at home in Outlook 2002, but plan on using it at work for Outlook 2003. VBA (and VBS if needed). Is there a way to get the SenderName Value via code? From what I can tell, this is trapped behind some of the security features in Outlook. I am wanting to reference this value so I can utilize it in an effort to make an archiving macro. |
#9
|
|||
|
|||
![]()
On Wed, 16 May 2007 21:35:08 -0400, "Sue Mosher [MVP-Outlook]"
wrote: Outlook 2002 VBA will give you security prompts, but Outlook 2003 won't, as long as you derive all objects from the intrinsic Application object. Greg's suggestion doesn't help, BTW, because the SaveAs method triggers a security prompt. I should have mentioned that. You have to deal with the security prompt. Just do a search to find Sue's articles on that. Thanks. |
#10
|
|||
|
|||
![]()
Sue,
Can you tell me what is wrong with my code below? I cannot seem to figure out the right way to reference the SenderName value. It keeps throwing the following error for line 9. Run-time error '91': Object variable or With block variable not set '_________________________________________________ _________________________________ Sub MoveSelectedMessagesToFolder() On Error Resume Next Dim objFolder As Outlook.MAPIFolder, objInbox As Outlook.MAPIFolder Dim objNS As Outlook.NameSpace, objItem As Outlook.MailItem Set objNS = Application.GetNamespace("MAPI") Set objInbox = objNS.GetDefaultFolder(olFolderInbox) Set objFolder = Outlook.Session.Folders("2007").Folders(objItem.Se nderName) If objFolder Is Nothing Then MsgBox "This folder doesn't exist!", vbOKOnly + vbExclamation, "INVALID FOLDER" End If If Application.ActiveExplorer.Selection.Count = 0 Then 'Require that this procedure be called only when a message is selected Exit Sub End If For Each objItem In Application.ActiveExplorer.Selection If objFolder.DefaultItemType = olMailItem Then If objItem.Class = olMail Then objItem.Move objFolder End If End If Next Set objItem = Nothing Set objFolder = Nothing Set objInbox = Nothing Set objNS = Nothing End Sub '_________________________________________________ _________________________________ "Sue Mosher [MVP-Outlook]" wrote in message ... Session.Folders returns the collection of top-level folders, i.e. all the individual .pst files or mailboxes. To get a non-default folder, you need to walk the folder hierarchy starting with that collections or use a function that does that for you. See http://www.outlookcode.com/d/code/getfolder.htm -- Sue Mosher, Outlook MVP Author of Configuring Microsoft Outlook 2003 http://www.turtleflock.com/olconfig/index.htm and Microsoft Outlook Programming - Jumpstart for Administrators, Power Users, and Developers http://www.outlookcode.com/jumpstart.aspx "Mark Ivey" wrote in message ... Thanks for the info Sue... Here is some code I found and altered a bit on the web from Eric Legault - B.A, MCP, MCSD, Outlook MVP. My problem is not knowing how to reference the subfolder I need due to these security items I have mentioned. Do you think the code below should work for Outlook 2003? If not, could you make a suggestion. My biggest concern is this line: "Set objFolder = Outlook.Session.Folders("2007" & objItem.SenderName)" How do I reference a subfolder in my personal folders list with the variable "SenderName"? '_________________________________________________ _________________________________ Sub MoveSelectedMessagesToFolder() On Error Resume Next Dim objFolder As Outlook.MAPIFolder, objInbox As Outlook.MAPIFolder Dim objNS As Outlook.NameSpace, objItem As Outlook.MailItem Set objNS = Application.GetNamespace("MAPI") Set objInbox = objNS.GetDefaultFolder(olFolderInbox) Set objFolder = Outlook.Session.Folders("2007" & objItem.SenderName) If objFolder Is Nothing Then MsgBox "This folder doesn't exist!", vbOKOnly + vbExclamation, "INVALID FOLDER" End If If Application.ActiveExplorer.Selection.Count = 0 Then 'Require that this procedure be called only when a message is selected Exit Sub End If For Each objItem In Application.ActiveExplorer.Selection If objFolder.DefaultItemType = olMailItem Then If objItem.Class = olMail Then objItem.Move objFolder End If End If Next Set objItem = Nothing Set objFolder = Nothing Set objInbox = Nothing Set objNS = Nothing End Sub '_________________________________________________ _________________________________ "Sue Mosher [MVP-Outlook]" wrote in message ... Outlook 2002 VBA will give you security prompts, but Outlook 2003 won't, as long as you derive all objects from the intrinsic Application object. Greg's suggestion doesn't help, BTW, because the SaveAs method triggers a security prompt. "Mark Ivey" wrote in message ... I am designing it at home in Outlook 2002, but plan on using it at work for Outlook 2003. VBA (and VBS if needed). Is there a way to get the SenderName Value via code? From what I can tell, this is trapped behind some of the security features in Outlook. I am wanting to reference this value so I can utilize it in an effort to make an archiving macro. |
|
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Change SenderName Property | Jan-Henrik Horstmann | Outlook and VBA | 1 | March 9th 07 07:37 AM |
Redemption to return the DisplayName or SenderName | bobdydd | Outlook and VBA | 2 | May 30th 06 08:33 PM |
How to change read only SenderName and SenderEmailAddress | [email protected] | Outlook - General Queries | 3 | April 19th 06 08:22 PM |