【发布时间】:2021-07-24 17:44:32
【问题描述】:
我遇到了一个相当奇怪的情况。我正在使用这些新编写的电子邮件的代码部分修改邮件内容。它在我迄今为止遇到的所有不同环境中都能完美运行。
MailItem _currentItem; // this is assigned
private void InsertAtCursor(string html)
{
html = ReplaceCID(html);
Word.Document xDoc = _currentItem.GetInspector.WordEditor;
var xSel = xDoc.Application.Selection;
ClipboardHelper.CopyToClipboard(html);
Thread.Sleep(1000);
xSel.PasteSpecial();
int i = xSel.Start += html.Length;
xSel.SetRange(i, i);
xDoc = null;
xSel = null;
}
private void InsertAtTop(string html)
{
InsertCID(html);
_currentItem.HTMLBody = html + _currentItem.HTMLBody;
}
对于一位用户来说,这些代码行似乎不起作用。这意味着 HTML 没有写在邮件正文中 - 我可以确认邮件正文是 HTML 格式。您可以通过在顶部插入或在光标处插入来交替。如果 InsertAtCursor 产生异常,我的代码会处理,回退到 InsertAtTop。当代码处理正常或发生异常时,我总是保存邮件项目。
我的问题:是否有任何适用于 Outlook 的安全策略和/或可能阻止写入 HtmlBody 的设置?
编辑:
使用以下代码行得到相同的结果,几乎适用于我测试的所有客户端,除了一个。
public class Test
{
private MailItem _currentItem;
public Test(MailItem item)
{
_currentItem = item;
}
public void Set()
{
_currentItem.Body = "Test";
}
}
【问题讨论】:
-
哪行代码给出了异常?您是否尝试调试代码?
-
不幸的是,没有抛出异常,我无法在我自己的环境(和调试)中复制这种行为,因为它只发生在少数几个系统中。因此,问题是 Outlook 是否有任何可能导致此问题的安全实践/设置?