0

我为 SharePoint 2010 设置了传入电子邮件,并使用该方法从 InfoPath 发送表单,并在 SharePoint Server 计算机上设置了 SMTP 服务器。这似乎比使用 InfoPath 代码隐藏选项提升匿名用户的权限更容易。我还尝试了一种发送电子邮件的自定义方法,但找不到使用 InfoPath 2010 代码隐藏选项将表单数据与电子邮件一起发送的方法。所以,我找到了另一种方法,使用来自SharePoint UK网站的建议。

我的问题是,虽然删除 x-mailer 标头实际上解决了我关于整个电子邮件的问题,但它不允许将附加的表单数据发送到库。如果我没有启用“保存原始电子邮件”设置,该消息将被导入然后消失。检查放置文件夹中的消息,我发现它们的内容类型为“multipart/related”,如果我使用 NotePad++ 编辑它们,我可以将其更改为“multipart/mixed”,然后将根据需要导入附加的表单数据。

所以我开始尝试修改 VB 脚本以实现这一点,但现在脚本根本没有任何反应。显然我做错了什么,而 VBScript 真的不是我的专业领域。也许只是无法编辑这些字段,或者我需要从不同的角度对其进行攻击。如何让我的 VBScript 编辑这些电子邮件的内容类型?

代码:

    Set shell = CreateObject("WScript.Shell")
    shell.LogEvent 4, "starting mail filter"
    if instr(iMsg.Fields("urn:schemas:mailheader:content-type"), "related") > 1 then
        Dim logMsg = "Mail Type:  " & iMsg.Fields("urn:schemas:mailheader:content-type")
        Dim tempType = Replace(iMsg.Fields("urn:schemas:mailheader:content-type"), "related", "mixed")
        shell.LogEvent 4, iMsg.Fields("urn:schemas:mailheader:content-type")
        iMsg.Fields.Delete("urn:schemas:mailheader:content-type")
        iMsg.Fields.Item("urn:schemas:mailheader:content-type") = tempType
        iMsg.Fields.Update
        shell.LogEvent 4, iMsg.Fields("urn:schemas:mailheader:content-type")
    end if
    shell.LogEvent 4, "end mail filter"
    iMsg.DataSource.Save
    EventStatus = 0
4

1 回答 1

1

我对此进行了更详细的研究,发现电子邮件的内容类型属性是使用此特定 vbscript 库的许多只读属性之一。因此,我必须找到其他编辑文件的方法,而所涉及的工作不仅仅是找到完全跳过电子邮件的替代解决方案所需要的工作。因此,我放弃了在这种情况下使用电子邮件的计划。如果您对此有所了解,假设此脚本中的邮件消息对象具有只读属性。

于 2013-04-10T14:27:34.493 回答