目前我的应用程序正在从Outlook中提取所有未读电子邮件并在datagridview中显示它们。导致我承受压力的是错误:" System .__ ComObject"这是出现在"附件"列。
我尝试做的就是将未读Outlook电子邮件中的附件名称添加到附件列中。
我不明白我哪里出错了。任何帮助都会很棒。
谢谢。
private void Form1_Load(object sender, EventArgs e)
{
try
{
Outlook._Application app = new Outlook.Application();
Outlook.NameSpace ns = app.GetNamespace("MAPI");
Outlook.MAPIFolder inbox = ns.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
Outlook.Items UnRead = inbox.Items.Restrict("[Unread]=true");
ns.SendAndReceive(true);
dt = new DataTable("Inbox");
dt.Columns.Add("From Email", typeof(String));
dt.Columns.Add("Date", typeof(String));
dt.Columns.Add("Subject", typeof(String));
dt.Columns.Add("Body", typeof(String));
dt.Columns.Add("Attachments", typeof(String));
dt.Columns.Add("Print Body", typeof(String));
dt.Columns.Add("File Format", typeof(String));
dt.Columns.Add("Selected", typeof(String));
dataGridView1.DataSource = dt;
foreach (Object item in inbox.Items)
{
if ((item as Outlook.MailItem) != null && (item as Outlook.MailItem).UnRead == true)
{
Outlook.MailItem item1 = (Outlook.MailItem)item;
dt.Rows.Add(new Object[] { item1.SenderName, item1.SentOn.ToLongDateString() + "" + item1.SentOn.ToLongTimeString(), item1.Subject,
item1.Body, item1.Attachments});
}
}
MessageBox.Show("Retrieving Unread Email Messages.");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}