所以,这可能是一个愚蠢的问题(或不可能的事情),但我只是想问一问,以防有人知道。我正在尝试打开Outlook(通过Office 365-浏览器或通过Outlook桌面应用程序)来撰写电子邮件。我做的很好。我想知道的是,是否有一种方法可以捕获WPF应用程序中的内容(例如,正文,收件人,主题,附件),以便最终进行更新。你们认为这是否可能?
这是示例代码:(用于在浏览器中打开)
final_result = (aggregate_df.assign(DayType = aggregate_df['DayType'].map({0:'Weekdays',
1:'Weekend'}))
.pivot_table(columns='DayType',values = 'Qty',index='Id',fill_value=0)
.reset_index()
.rename_axis(columns=None))
print(final_result)
Id Weekdays Weekend
0 B07 4858 1677
1 B08 3741 0
这是在Outlook Desktop App中打开它的代码:
string To = "abc@ftr.com";
string subject = "Test Email";
string body = "This is a test email, Please ignore";
string url = @"https://outlook.office.com/?path=/mail/action/compose&to=" + To + "&subject=" + subject + "&body=" + body;
System.Diagnostics.Process.Start(url);
谢谢!
答案 0 :(得分:1)
您可以挂钩ItemSend
事件,这将为您提供对即将发送的MailItem
对象的引用。这是我从Microsoft Community Forums
public void SendEnMail(Office.IRibbonControl control) //OnAction Function
{
Outlook.Application oApp = new Outlook.Application();
Outlook._MailItem myMail = (Outlook._MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);
myMail.Display(true);
Outlook.Application application = Globals.ThisAddIn.Application;
application.ItemSend += new Outlook.ApplicationEvents_11_ItemSendEventHandler(Application_ItemSend);
}
void Application_ItemSend(object Item, ref bool Cancel)
{
string a = ((Microsoft.Office.Interop.Outlook.MailItem)Item).Body;
System.Windows.Forms.MessageBox.Show(a);
Cancel = true;
}