Я создаю приложение Outlook 2010, чтобы интегрировать его с некоторым программным обеспечением для бизнеса и внедрил пользовательское событие ItemSend и применил мои собственные веб-службы от поддержки с помощью jason. Я могу сохранить почтовый элемент как .msg-файл (в папке временных файлов пользователей). но когда я пытаюсь открыть его Проблема заключается в том, что Outlook открывает ее как сообщение, которое все еще составлено, и пользователь может очень легко нажать кнопку «Отправить» еще раз.Есть ли способ отметить, что Outlook.MailItem был отправлен до его сохранения?
Есть ли способ отметить, что элемент был отправлен до его сохранения, поэтому при открытии после того, как он открывается, как прочитанный адрес электронной почты, а не как составной адрес электронной почты?
я делюсь мой код ниже, пожалуйста, руководство меня через этот
void Application_ItemSend(object Item, ref bool Cancel)
{
this.passwordpopUpObj = new Forms.PasswordInputPopUp();
passwordpopUpObj.ShowDialog();
passwordpopUpObj.StartPosition = FormStartPosition.CenterParent;
Outlook.MailItem mail = Item as Outlook.MailItem;
if (passwordpopUpObj.textBox1.Text != "")
{
Cancel = true;
BussinessClass cs = new BussinessClass();
string msg = cs.ServerCallSendMail(mail.Subject, mail.To, mail.CC, attachcount, passwordpopUpObj.textBox1.Text);
if (msg == "Success")
{
mail.SaveAs(@"E:\Plugin.net\EmailCipherPlugin\EmailCipherPlugin\Mails" + "\\" + "file3" + @".msg");
MessageBox.Show("Mail Send SuccessFully through Plugin");
mailItem = Item as Outlook.MailItem;
Cancel = true;
foreach (Outlook.Store store in OutlookObject.Session.Stores)
{
if (store.DisplayName == "Email Cipher")
{
Outlook.MAPIFolder pstRootFolder = store.GetRootFolder();
foreach (Folder folder in pstRootFolder.Folders)
{
MessageBox.Show(store.FilePath + folder.FolderPath);
if (folder.Name == "Email cipher Sent")
{
MessageBox.Show(Directory.Exists(@"E:\Plugin.net\EmailCipherPlugin\EmailCipherPlugin\Mails").ToString());
mail.SaveAs(@"E:\Plugin.net\EmailCipherPlugin\EmailCipherPlugin\Mails" + "\\" + "file3" + @".msg", Outlook.OlSaveAsType.olMSG);
}
}
}
}
}
//
else
{
Cancel = true;
MessageBox.Show("Mail Cannot be sent through plugin");
}
}
else
{
MessageBox.Show("mail Send Normally");
Cancel = false;
mail.Categories = "Sent";
mail.SaveAs(@"E:\Plugin.net\EmailCipherPlugin\EmailCipherPlugin\Mails" + "\\" + "outlookfile" + @".msg", Outlook.OlSaveAsType.olMSG);
}
}
Если вы можете скопировать почти точный вопрос, который был задан здесь http://stackoverflow.com/questions/8799622/set-a-mailitem-as-sent-before-calling-saveas-in-outlook -addin-with-c-sharp? rq = 1, почему вы не можете использовать ответ? – AsheraH