TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
michal adamkiewiczm
NA
15
20.7k
Iterate throw E-mail items in Outlook
Apr 25 2012 3:48 PM
Hi Guys,
I'm new soo I don't really is this a good topic board (shouldn't I wrote on Office Interoperability?), but I think that my problem is so silly for someone who know's .NET and C#, that I will try to ask:).
The idea is that I must only iterate for every mail in Outlook 2007 inbox folder, and those mail which passed my conditions, I must moved to subfoler named "Archive". This is only a few lines of code, but even with this a have problem:(, and the worst thing is that I need this to my work for tommorrow. My code work fine.....but only for 1 mail...and I dont't know why? For example I sent to my e-mail account set up in Outlook 3 mails which are consistend with my conditions (for example every 3 mails have no subject and they have only 1 attachment), and run my application in VS 2008, then I look in Outlook and I see that only one of those three mails have been moved, If I run app, next mail will be moved to Archive subfolder, and like that....I don't know why he don't do this at once as I iterate using foreach? It's not logical for me:(
This is my very small code:
Microsoft.Office.Interop.Outlook.Application outlook = new Microsoft.Office.Interop.Outlook.Application();
Microsoft.Office.Interop.Outlook.NameSpace names = outlook.GetNamespace("MAPI");
Microsoft.Office.Interop.Outlook.MAPIFolder odbiorcza = names.GetDefaultFolder(OlDefaultFolders.olFolderInbox);
Microsoft.Office.Interop.Outlook.MAPIFolder archive = names.GetDefaultFolder(OlDefaultFolders.olFolderInbox).Folders["Archive"];
if (odbiorcza.Items.Count > 0)
{
foreach (Microsoft.Office.Interop.Outlook.MailItem mail in odbiorcza.Items)
{
if (mail.Subject == null || mail.Subject.StartsWith("WWY"))
{
MessageBox.Show(mail.SenderName.ToString());
if (mail.Attachments.Count == 1)
{
mail.Move(archive);
}
}
}
}
I would be very gratefully for every advice and tip, really!
And sorry for my language, but I'm just learning english
Best Greets
Michael
Reply
Answers (
1
)
Difference between c# and vb.net
How to read word document in C# while uploading the file?