【问题标题】:SharePoint publishing site email encoding/decodingSharePoint 发布网站电子邮件编码/解码
【发布时间】:2009-02-17 23:58:16
【问题描述】:

我正在为我公司网站上的员工信息构建一个 SharePoint (MOSS) 发布网站。我有一个员工内容类型,并且正在使用“联系电子邮件地址”站点列来存储员工的电子邮件地址。

我想要的是能够在运行时对电子邮件地址进行编码,以防止垃圾邮件发送者获取真实的电子邮件地址。当用户单击电子邮件超链接时,这将被解码,例如以下 HTML 将被发送到浏览器:

<a href="javascript:sendEmail('5237952A6F67618E407373772E6063212E6175')">Email Jonny</a>

我已经有了用于从上面无意义的字符串编码/解码文本值的 javascript 方法,但我不太确定如何在考虑到 SharePoint 的情况下处理此问题。我正在考虑自定义控件和/或自定义 J-Query?

任何帮助将不胜感激!

强尼

【问题讨论】:

    标签: sharepoint email publishing encode


    【解决方案1】:

    如果您无法将用户放入 AD,custom field control 将使您能够包含所需的自定义呈现 (jquery) 以及将数据作为“普通”文本输入的能力.

    自定义字段,一旦定义“就可以工作”,无论您需要在哪里显示该字段。

    鉴于您正在考虑使用 JQuery,那么问题就变成了确保在您需要此类字段时正确链接 jquery 库。

    【讨论】:

    • 您好 Nat,非常感谢您的评论。自定义字段控件听起来非常适合我的要求。我以前不知道这个选项!
    【解决方案2】:

    如果您让这些员工成为网站的成员,SharePoint 会处理这个问题。

    您可以向他们发送电子邮件,但电子邮件地址只会在发送时使用,当您添加按钮向某人发送电子邮件时,它不会显示电子邮件地址,它在后端处理。

    SPUtility.SendEmail(SPContext.Current.Web, false, false,
    [SPUser.Email][1], "E-mail title",
    "E-mail body");
    


    (来源:msdn.com

    【讨论】:

    • 嗨,Ric,很棒的建议,但我认为我们不能选择会员选项。我们还希望显示有关过去员工的信息(当前/过去由内容类型上的复选框启用)。过去的员工不会成为会员。还有其他想法吗?
    【解决方案3】:

    您可以尝试另外两种选择/方法:

    (1) 实现自定义TextField控件,继承自Microsoft.SharePoint.WebControls.TextField并覆盖RenderFieldForDisplay

    然后在代码中 - 对字段进行编码以供显示。

    将此控件添加到安全控件并使用它代替页面布局中的普通 TextField。

    (2) 使用现有的TextField控件,但在编辑模式下使用jQuery在TextField旁边注入一个按钮[Encode]。

    使用 JavaScript 编码方法将用户键入的内容编码为编码值,替换现有的 TextField 值。然后他们可以将其保存到 SharePoint。


    我会根据您的部署方案对这些方法进行评分 - Nat 的方法是最干净的,但可能更多地涉及部署,而仅 jQuery 的方法似乎非常hackish,但部署起来很容易。覆盖 TextField 方法可能位于中间的某个位置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多