SharePoint发布站点电子邮件编码/解码

问题描述 投票:2回答:3

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

我希望能够在运行时编码电子邮件地址,以防止垃圾邮件发送者收集真实的电子邮件地址。当用户点击电子邮件超链接时,这将被解码,例如,以下HTML将发送到浏览器:

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

我已经有了从上面无意义的字符串中编码/解码文本值的javascript方法,但我不太清楚如何在考虑SharePoint的情况下解决这个问题。我在想一个自定义控件和/或自定义J-Query?

任何帮助将非常感激!

强尼

sharepoint email publishing encode
3个回答
2
投票

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

自定义字段,一旦定义“只是工作”,无论您需要显示字段。

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


2
投票

如果您将这些员工作为站点的成员,SharePoint将解决此问题。

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

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

alt text (来源:msdn.com


0
投票

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

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

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

将此控件添加到safecontrols并使用它来代替pagelayout中的普通TextField。

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

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


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

© www.soinside.com 2019 - 2024. All rights reserved.