Email 当我通过Dynamics CRM发送电子邮件时,如何添加邮件标题
我想在Dynamics CRM 2011解决方案中编辑电子邮件模板 我将添加一个组合框的形式,允许用户决定什么样的分类电子邮件应该是,如a,B或C 这有助于我们的电子邮件网关了解在存档等方面如何处理某些邮件。此外,设置标题将使用户收件人更难解密降低分类,如果我们只是将分类推到主题行中,则很容易做到这一点。是的,我知道我们仍然容易被复制和粘贴但是试着告诉我的客户 在发送电子邮件之前,有一个事件,我可以获取邮件项目并添加邮件标题,还可以处理主题行或其他可编辑字段等内容 我已经编写了一个Outlook加载项,在发送时运行这段代码,基本上我想知道我应该在Dynamics中把类似的代码放在哪里Email 当我通过Dynamics CRM发送电子邮件时,如何添加邮件标题,email,dynamics-crm-2011,email-headers,Email,Dynamics Crm 2011,Email Headers,我想在Dynamics CRM 2011解决方案中编辑电子邮件模板 我将添加一个组合框的形式,允许用户决定什么样的分类电子邮件应该是,如a,B或C 这有助于我们的电子邮件网关了解在存档等方面如何处理某些邮件。此外,设置标题将使用户收件人更难解密降低分类,如果我们只是将分类推到主题行中,则很容易做到这一点。是的,我知道我们仍然容易被复制和粘贴但是试着告诉我的客户 在发送电子邮件之前,有一个事件,我可以获取邮件项目并添加邮件标题,还可以处理主题行或其他可编辑字段等内容 我已经编写了一个Outlook
private Dictionary<string, List<string>> _classifications;
private const string ProtectiveMarkingSchemaName = "http://schemas.microsoft.com/mapi/string/{00020386-0000-0000-C000-000000000046}/X-Protective-Marking";
private const string Version = "0.1";
private const string Namespace = "xyz.com";
void ApplicationItemSend(object item, ref bool cancel)
{
// GUARD
if (!(item is MailItem)) return;
if (ClassificationDropDown.SelectedItem == null ||
String.IsNullOrEmpty(ClassificationDropDown.SelectedItem.Label))
{
cancel = true;
return;
}
// CURRENT ITEM
var mailItem = (MailItem)Globals.ThisAddIn.Application.ActiveInspector().CurrentItem;
// PREPARE MARKING
var origin =
Globals.ThisAddIn.Application.Session.CurrentUser.AddressEntry.GetExchangeUser().PrimarySmtpAddress;
var classification = new StringBuilder();
classification.AppendFormat("SEC={0}", ClassificationDropDown.SelectedItem.Label);
if (DisseminationDropDown.SelectedItem != null)
{
if (!String.IsNullOrEmpty(DisseminationDropDown.SelectedItem.Label))
{
var cat = DisseminationDropDown.SelectedItem.Label;
classification.AppendFormat(", CAVEAT={0}", cat);
}
}
// FILTHY HACK
if (mailItem.Subject == null)
{
mailItem.Subject = " ";
}
// FIND OLD MARKINGS
var start = mailItem.Subject.IndexOf('[');
var end = mailItem.Subject.LastIndexOf(']');
if (end - start > 0)
mailItem.Subject = mailItem.Subject.Remove(start, (end - start) + 1);
// APPLY MARKING
mailItem.Subject = String.Format("{0} [{1}]", mailItem.Subject.TrimEnd(), classification);
mailItem.PropertyAccessor.SetProperty(
ProtectiveMarkingSchemaName,
String.Format("[VER={0}, NS={1}, {2}, ORIGIN={3}]", Version, Namespace, classification, origin));
}
这不是我有任何直接经验的领域,但我可以告诉你的是,在CRM SDK中通常使用的电子邮件对象是底层电子邮件消息的抽象 尽管如此,SDK暴露了一个可能有用的区域。请看SDK中名为的部分,该部分将按照您想要的方向公开内容: 电子邮件提供程序是一个可插入组件,与 Microsoft Dynamics CRM电子邮件路由器服务。提供者是 负责专门的电子邮件处理和与 电子邮件协议 也就是说,我看不到任何暴露邮件头的对象,但我没有仔细看
请注意,它会重定向到,以获取有用的内容,但这仍然有效且受支持。这不是我有任何直接经验的领域,但我可以告诉您的是,CRM SDK中通常使用的电子邮件对象是底层电子邮件的抽象 尽管如此,SDK暴露了一个可能有用的区域。请看SDK中名为的部分,该部分将按照您想要的方向公开内容: 电子邮件提供程序是一个可插入组件,与 Microsoft Dynamics CRM电子邮件路由器服务。提供者是 负责专门的电子邮件处理和与 电子邮件协议 也就是说,我看不到任何暴露邮件头的对象,但我没有仔细看
请注意,它会重定向到,以获取有用的内容,但这仍然有效且受支持。我目前有一张与Microsoft的联系单,但他们最初的反应是,这无法完成 他们建议的解决方案是使用邮件网关上的规则来添加标题信息,如果我只想写入相同的标题信息,这就解决了这个问题,但是如果我想在标题中添加变量值,这就变得更复杂了 我看了格雷格的建议,虽然它们对我来说是一个很好的学习练习,但我在那里找不到解决办法 可以编写一个这样做的工作流,但我必须考虑CRM在发送邮件时所做的所有其他垃圾邮件,坦率地说,文档有点粗略地描述了我需要做什么,但我最好的猜测是这样的 使用功能区编辑器隐藏原始的“发送”按钮 将下拉列表添加到包含选项的电子邮件表单 使用javascript添加新的发送按钮,以启动工作流 编写一个接收电子邮件的工作流,查找标题值字段并将其塞进标题中 然后发送它。
我不知道这是否会自动关闭活动,或者它是否会保留其上下文,例如案例中的活动、帐户等,或者此方法是否会影响审计,因此可能必须对这些事情进行解释目前我与Microsoft有联系,但他们最初的反应是无法做到这一点 他们建议的解决方案是使用邮件网关上的规则来添加标题信息,如果我只想写入相同的标题信息,这就解决了这个问题,但是如果我想在标题中添加变量值,这就变得更复杂了 我看了格雷格的建议,虽然它们对我来说是一个很好的学习练习,但我在那里找不到解决办法 可以编写一个这样做的工作流,但我必须考虑CRM在发送邮件时所做的所有其他垃圾邮件,坦率地说,文档有点粗略地描述了我需要做什么,但我最好的猜测是这样的 使用功能区编辑器隐藏原始的“发送”按钮 将下拉列表添加到包含选项的电子邮件表单 使用javascript添加新的发送按钮,以启动工作流 编写一个接收电子邮件的工作流,查找标题值字段并将其塞进标题中 然后发送它。 我不知道这是否会自动关闭活动,或者它是否保留其上下文,例如活动I
n案例、账目等,或者如果该方法影响审计,则可能必须考虑这些问题很遗憾,我有一个非常类似的问题,因此我向具有较高代表性的人寻求建议。。。我必须向发件人和ReplyTo标题添加一些值。您曾经使用SDK访问过标题吗?我打赌你最后使用了一些JavaScript…唯一的方法是如果你使用CRM for outlook插件,并且你还有一个outlook插件来处理邮件标题。否则你必须在邮件网关上完成。天哪。。。这件事变得越来越难。。。谢谢斯佩特,你好!我对Dynamics 365 online有问题。我需要设置发送给外部收件人时电子邮件的标题。难道你不知道在我的情况下该怎么做吗?不,对不起,我已经多年没有在CRM工作了。我希望编辑邮件网关中的标题是你能做的一切。我有一个非常类似的问题,所以我寻求更高代表性的人的建议。。。我必须向发件人和ReplyTo标题添加一些值。您曾经使用SDK访问过标题吗?我打赌你最后使用了一些JavaScript…唯一的方法是如果你使用CRM for outlook插件,并且你还有一个outlook插件来处理邮件标题。否则你必须在邮件网关上完成。天哪。。。这件事变得越来越难。。。谢谢斯佩特,你好!我对Dynamics 365 online有问题。我需要设置发送给外部收件人时电子邮件的标题。难道你不知道在我的情况下该怎么做吗?不,对不起,我已经多年没有在CRM工作了。我希望在邮件网关中编辑邮件头就是您所能做的一切