C# 无法使用c中的兑换功能发送显示的电子邮件#
我使用C#中的Redemption数据对象创建了一封新的电子邮件。调用Display()后,窗口将打开-所有这些看起来都很棒 当我尝试发送消息时,通过单击“发送”-按钮,我会收到以下消息之一(翻译自德语…):“消息传递界面返回未知错误。如果出现问题,请尝试重新启动outlook…”或“无法发送元素!” 当我使用发送方法时,一切正常,电子邮件将被发送 我尝试了OutlookSpy来寻找解决方案——当我尝试发送消息时,我得到了返回代码0x80020009 以下是示例代码:C# 无法使用c中的兑换功能发送显示的电子邮件#,c#,email,send,outlook-redemption,C#,Email,Send,Outlook Redemption,我使用C#中的Redemption数据对象创建了一封新的电子邮件。调用Display()后,窗口将打开-所有这些看起来都很棒 当我尝试发送消息时,通过单击“发送”-按钮,我会收到以下消息之一(翻译自德语…):“消息传递界面返回未知错误。如果出现问题,请尝试重新启动outlook…”或“无法发送元素!” 当我使用发送方法时,一切正常,电子邮件将被发送 我尝试了OutlookSpy来寻找解决方案——当我尝试发送消息时,我得到了返回代码0x80020009 以下是示例代码: Redemption.RD
Redemption.RDOSession session = new Redemption.RDOSession();
session.Logon(null, null, false, null, null, null);
Redemption.RDOFolder folder = session.GetDefaultFolder(Redemption.rdoDefaultFolders.olFolderOutbox);
Redemption.RDOMail newMail = folder.Items.Add(Redemption.rdoItemType.olMailItem);
// no difference when using .Add
newMail.Recipients.AddEx("a.b@blabla.com","a.b@blabla.com", "SMTP", Redemption.rdoMailRecipientType.olTo);
newMail.Recipients.ResolveAll();
newMail.Subject = "Testmail-Subject";
newMail.HTMLBody = "Test";
newMail.Display(false, Type.Missing);
有人知道那个问题的解决办法吗
问候马丁
注:我正在Windows7(英语)上使用Office2010(德语)和VisualStudio2010(英语),目标框架为2.0
我发现了“错误”
因为我的会话超出范围,上下文丢失,所以发生了错误
以下是解决方案:
// Event object to wait for
System.Threading.ManualResetEvent _manualEvent = new ManualResetEvent(false);
private void DisplayMail() {
...
// register an eventhandler for the close event
_newMail.OnClose += new Redemption.IRDOMailEvents_OnCloseEventHandler(_newMail_OnClose);
_newMail.Recipients.Add(txtTo);
_newMail.Recipients.ResolveAll();
_newMail.Subject = subject;
_newMail.HTMLBody = body;
_newMail.Display(false, null);
// wait here until the message-window is closed...
_manualEvent.WaitOne();
}
private void _newMail_OnClose()
{
_manualEvent.Set();
}