我为 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