VBScript修改电子邮件内容类型

时间:2013-04-01 17:14:47

标签: email vbscript smtp

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

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

所以我开始尝试修改VB脚本来实现这一点但是现在脚本根本没有发生任何事情。显然我做错了,VBScript真的不是我的专业领域。也许只是不可能编辑那些字段或者我需要从不同角度攻击它。如何让我的VBScript编辑这些电子邮件的内容类型?

CODE:

    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

1 个答案:

答案 0 :(得分:1)

我更详细地研究了这一点,发现电子邮件的内容类型属性是使用这个特定的vbscript库只读的许多属性之一。因此,我必须找到一些其他编辑文件的方法,所涉及的工作不仅仅是找到完全跳过电子邮件的备用解决方案。因此,在这种情况下,我放弃了使用电子邮件的计划。如果你从这里拿走一些东西,那就让这个脚本中的邮件消息对象有只读属性。