Lotus Connections 2.5 使用 Notification Framework (NF) 向终端用户发送通知。可以借助 Web UI 通过 Lotus Connections 向用户发送通知,也可以通过比较传统的电子邮件消息向用户发送通知。
这份白皮书解释什么是 NF、如何配置 NF 以及如何创建和配置电子邮件通知。我们还提供一些有用的脚本,帮助简化和自动化现有模板的获取和更新流程。
Lotus Connections 是由几个相互合作的组件组成的 Web 2.0 社交软件,用户可以借助它轻松分享信息和发布工作。在最新的 Lotus Connections 中,即 2.5 版本,如果您的网络出现问题,将以新闻事件或传统的电子邮件通知您。
我们将解释如何以及从何处生成电子邮件,并描述电子邮件的外观以及管理员如何配置它们的内容和外观。
下面列出使用电子邮件通知的 Lotus Connections 组件:
- Activities
- Bookmarks
- Blogs
- Communities
- Profiles
- Files
- Wikis
对于每个组件,我们将通过一个表格归纳触发电子邮件的操作,并展示与这些操作相关联的对应模板类型。然后,我们解释重新生成这些操作所需的步骤。
Connections Activities 帮助您组织工作、计划下一个步骤和邀请您的专业团队成员帮助执行与项目目标相关的任务。在 Activities 中,遵循表 1 的操作创建电子邮件消息。
表 1. Activities 电子邮件操作 / 模板位置
| 参考 | 操作 | 类型 | 模板 |
|---|---|---|---|
| 1-a | General Notification | notify | {notification.source.url}/email/notifyMail .jsp |
| 2-a | When the activity is completed | autocomplete | {notification.source.url}/email/ autoCompleteActivityMail.jsp |
| 3-a | Creating an activity | create | {notification.source.url}/email/createMail.jsp |
| 4-a | Adding a member | add-member | {notification.source.url}/email/addMemberMail.jsp |
1-a. 摘要通知
当用户每次决定通知 Activities 成员(见图 1)时,将创建包含摘要通知的电子邮件。成员之间可以彼此发送该电子邮件通知。
用户可以通过以下步骤创建通知:
- 进入 Activities。
- 打开给您分配的任意 Activity。
- 打开现有的条目或创建新的条目。
- 选择 More Actions, and Notify People。
图 1. 摘要通知电子邮件
2-a. 完成 Activity 之后
如果 Activity 的日期已经过期,系统将自动生成一个表示活动已经完成的摘要电子邮件通知。活动的所有者将收到一封电子邮件,警告处于非活动状态的活动之一将被标记为完成,除非现在更新它(图 2)。用户可以使用以下步骤创建新活动:
- 进入 Activities。
- 单击 Start a new Activity。
- 设置期限。
图 2. 自动完成通知
3-a. 创建活动
当新的 Activity 创建之后,将自动向 Activity 成员发送摘要电子邮件通知(见图 3)。
用户可以通过单击 Start a new Activity 创建一个新活动,然后填充并保存表单。
图 3. New Activity 电子邮件
4-a. 添加成员
当 Activity 所有者向活动添加新成员时,将自动向新成员发送一封电子邮件,通知他们关于 Activity 的信息(见图 4)。
用户可以打开属于自己的 Activity 创建成员。在 Members 区域单击 Add a Member。
图 4. New Member 电子邮件
Connections Bookmarks 不仅为管理书签提供更好的方式,并且还提供一种方式来分享、订阅和搜索社区的书签。如果发现有用的书签,您可以通过电子邮件通知同事。
在 Bookmarks 中,通过表 2 的操作创建电子邮件消息。
表 2. Bookmarks 电子邮件操作/模板位置
| 参考 | 操作 | 类型 | 模板 |
|---|---|---|---|
| 1-b | Notify for a bookmark | notify | {notification.source.url}/templates/notifytemplate.jsp |
1-b. 书签通知
要创建书签通知,进入 Bookmarks,单击 Show details,然后单击 Notify other users。图 5 显示了一个示例通知。
图 5. 书签通知电子邮件
博客服务帮助人们分享自己的观点。当创建的博客内容被隔离或标记为不宜发布时,将自动向博客所有者发送一封电子邮件通知。
通过表 3 中的操作可以在 Blogs 中创建电子邮件通知。
表 3. Blog 电子邮件操作 / 模板位置
| 参考 | 操作 | 类型 | 模板 |
|---|---|---|---|
| 1-c | User notifies other user(s) of a blog entry | notify | {notification.source.url}/notify.jsp |
| 2-c | When a blog entry is flagged, notify reviewers about the flag report | notifyflagged | {notification.source.url}/notifyflagged.jsp |
| 3-c | When a blog entry is flagged, notify reporter, confirm that the flag report has been sent for review | confirmflagged | {notification.source.url}/confirmflagged.jsp |
| 4-c | When a blog entry is quarantined, notify entry creator and other blogs co-authors | notifyquarantined | {notification.source.url}/ notifyquarantined.jsp |
| 5-c | When a blog entry is marked as “Return to Author” by reviewers, notify entry creator and other blogs co-authors to re-edit the entry | notifyedit | {notification.source.url}/notifyedit.jsp |
| 6-c | No longer used since version 2.0.1 | msg | {notification.source.url}/msg.jsp |
| 7-c | When a user post a comment on a blog entry, notify the entry creator about the new content | ownermsg | {notification.source.url}/ownermsg.jsp |
| 8-c | When a comment is approved, notify the comment poster | approvedmsg | {notification.source.url}/approvedmsg.jsp |
1-c. 用户之间通知博客条目
当用户决定通知其他用户关于某个博客条目时,将生成一封包含摘要信息的电子邮件(见图 6)。为此需要:
- 进入 Blogs。
- 打开需要通知其他用户的博客条目。
- 选择 More Actions > Notify other users。
图 6. 博客电子邮件通知
2-c. 如果博客条目带有标记,通知审查人员关于标记的报告
当用户标记了某个博客条目之后,将向审查人员发送一封关于标记博客条目的电子邮件(见图 7)。
为此,在 Blogs 中,打开一个希望标记为不宜发布的博客条目,然后选择 More Actions > Flag as inappropriate。
图 7. 通知带标记的条目的电子邮件
3-c. 当博客条目被标记之后,通知报告人员,确认标记报告已经发送给审查 人员
在博客条目被标记之后,将向用户发送一封电子邮件,通知用户标记报告已发送出去等待审查(见图 8)。为此,进入 Blogs,打开一个希望标记为不宜发布的博客条目,然后选择 More Actions > Flag as inappropriate。
图 8. 带标记的条目的电子邮件确认通知
4-c. 当博客条目被隔离之后,通知博客的创建者和其他共同创建者
在管理员隔离博客条目之后,将向博客条目的创建者和其他共同创建者发送一封电子邮件,通知他们博客条目已被隔离(见图 9)。为此需要:
- 启动 Blogs。
- 进入 Administration > Flagged Content 页面。
- 选择需要隔离的博客条目,然后单击 Quarantine link。
图 9. 隔离电子邮件通知
5-c. 当审查人员将隔离的博客条目标记为“Return to Author”之后,通知条目的创建者和共同创建者重新编辑该条目
在管理员将隔离的条目标记为“return to author ”之后,向博客条目创建者和共同创建者发送一封电子邮件,通知他们已返回博客条目,可进行重新编辑(见图 10)。为此:
- 进入 Blogs。
- 转到 Administration > Flagged Content 页面。
- 选择 Quarantined 视图。
- 选择需要执行“Return to Author”的博客条目,然后单击“Notify Author to Edit Entry”链接。
图 10. 返回给作者的电子邮件
6-c. 从 2.0.1 版本开始停用
7-c. 当用户针对某个博客条目发表了评论之后,将新的评论通知条目创建者
在用户针对某个博客条目发表了评论之后,向条目的创建者发送一封电子邮件,通知他们有人对条目发表评论(见图 11)。为此,在 Blogs 中,打开一个博客条目并单击“Add a comment”链接。
图 11. 博客评论电子邮件
8-c. 当评论获得审批之后,通知评论创建者
当博客所有者批准评论之后,将向评论创建者发送一封电子邮件,通知他评论已获得批准(见图 12)。为此:
- 进入 Blogs > My Blogs。
- 单击“Entries”链接。
- 单击“Comments”链接到 Comment Management 页面的链接。
- 勾选“Approved”,然后单击“Save changes”按钮。
图 12. 评论获得批准电子邮件
Communities 特性帮助兴趣相同者进行合作,其方式是通过 Web 浏览器或电子邮件软件交换和分享信息,或彼此间进行交流。
成员之间可以相互发送通知,转告重要事件。用户可以通过向社区所有者发送电子邮件申请加入社区。当社区加入了新成员时,将自动生成一份电子邮件并发送给他们。
在 Communities 中,根据表 4 的操作创建电子邮件。
表 4. Communities 电子邮件操作/模板位置
| 参考 | 操作 | 类型 | 模板 |
|---|---|---|---|
| 1-d | Send a mail to the comm. members | broadcastMail | {notification.source.url}/mail/broadcastMail.jsp |
| 2-d | Adding member | memberAdded | {notification.source.url}/mail/memberAdded.jsp |
| 3-d | Removing member | memberRemoved | {notification.source.url}/mail/ memberRemoved.jsp |
| 4-d | Send a request to join the comm. | requestToJoin | {notification.source.url}/mail/requestToJoin.jsp |
| 5-d | When a forum is created into the comm. | forumTopicCreated | {notification.source.url}/mail/topicCreated.jsp |
| 6-d | When somebody replay into a forum | topicReplayCreated | {notification.source.url}/mail/replyCreated.jsp |
1-d. 向社区成员发送电子邮件
当某个社区成员决定通知其他社区成员时,将向他们发送一封包含摘要信息的电子邮件(见图 13)。为此,进入 Communities,打开为您指定的任何 Communities,然后单击 Mail to Community 图标。
图 13. 社区成员电子邮件
2-d.添加成员
当社区所有者添加了一个成员之后,将向被添加为成员的用户发送一封电子邮件(见图 14)。
图 14. 新成员电子邮件
3-d. 删除成员
当社区所有者删除一个成员之后,将向被从社区删除的成员发送一封电子邮件(见图 15)。为此,打开为您指定的 Communities,单击 Members,然后单击 Remove Member。
图 15. 删除成员电子邮件
4-d. 发送加入社区的请求
每次用户请求加入社区时,将向社区所有者发送一封电子邮件,然后社区所有者可以将请求者添加为成员(见图 16)。为此,打开您希望加入的任意 Communities,然后单击 Join Communities 按钮。
图 16. 请求加入社区的电子邮件
5-d. 在社区中创建论坛
每当用户在社区中创建了一个新论坛时,将向所有社区成员发送一封电子邮件(见图 17)。要创建一个新论坛,请进入 Discussion 论坛,然后单击 Start a New Topic。
图 17. 新论坛电子邮件
6-d. 在论坛中回复帖子
每次用户回复社区论坛的问题时,将向论坛所有者发送一封电子邮件。论坛作者将收到一份包含该回复的电子邮件通知(见图 18)。为此:
- 打开您希望加入的任意 Communities。
- 打开在社区中创建的任意论坛。
- 单击 Reply 链接。
- 添加并保存回复消息。
图 18. 论坛回复电子邮件
Lotus Connections Profiles 能够在整个组织中进行搜索,并使用关键词识别专门技术、当前项目和职责,从而帮助您快速找到您需要的人员。
在 Profile 中,您不仅可以使用任意消息更新状态,还可以在同事留言板上留言。在 Profiles 中,通过表 5 中的操作创建电子邮件。
表 5. Profiles 电子邮件操作 / 模板位置
| 参考 | 操作 | 类型 | 模板 |
|---|---|---|---|
| 1-e | When an user invites a colleague | notify | {notification.source.url}/templates/mail/ inviteCollegueMail.jsp |
| 2-e | When an user writes a message on a colleague's board | notifyBoardOwner ForEntry | {notification.source.url}/templates/mail/ notifyBoardOwnerForEntry.jsp |
| 3-e | When a user comments on a message on a colleague's board | notifyBoardOwner ForComment | {notification.source.url}/templates/mail/ notifyBoardOwnerForComment.jsp |
| 4-e | When a user comments on a status message on a colleague's board | notifyEntryOwnerF orComment | {notification.source.url}/templates/mail/ notifyEntryOwnerForComment.jsp |
1-e. 用户邀请同事加入
当 Profiles 用户请求将一位同事加入到他的网络中时,将向该同事发送一条邀请消息(见图 19)。此外,如果用户将某人指定为他的同事,那么将向同事发送一封电子邮件,邀请他加入用户的网络。
为此,在 Profiles 上,搜索到一位同事,然后单击 Invite to My Network 链接。
图 19. 邀请加入网络的电子邮件
2-e. 用户在同事留言板上写消息
当同事发布消息或评论时,将向所有者的留言板发送包含消息或评论的电子邮件(见图 20)。为此:
- 进入 Profiles。
- 搜索到一位同事。
- 向同事的留言板添加一条消息或评论。
- 单击 Pos。
图 20. 消息通知
3-e. 用户对同事留言板的条目发表评论
当同事对留言板的条目进行评论时,将向用户发送一封电子邮件,通知用户他的留言板上有一条新消息(见图 21)。 为此,在 Profiles 中,搜索到一位同事,并在某个条目的状态上留一条消息。
图 21. 评论通知
Lotus Connections 的 Files 部分帮助我们分享任何类型的文件。在 Files 中,根据表 6 中的操作创建电子邮件。
表 6. Files 电子邮件操作/模板位置
| 参考 | 操作 | 类型 | 模板 |
|---|---|---|---|
| 1-f | Sharing a file with other users | mediaShare | {notification.source.url}/files/email/shareMail.xml |
| 2-f | Editing the file properties, name, etc.. | mediaEdit | {notification.source.url}/fi les/email/mediaEditMail.xml |
| 3-f | Adding a comment to a shared file | commentAdd | {notification.source.url}/fi les/email/ commenAddMail.xml |
1-f. 与其他用户分享文件
当 Files 用户共享一个文档时,将发送一封电子邮件,通知用户和同事共享了新文件(见图 22)。为此:
- 进入 Files。
- 打开属于您的文件。
- 单击 Share 选项卡。
- 添加一个 Reader 或 Editor 并与之共享文件。
注意,在第一次上传期间就可以分享文件。将默认发送通知。
图 22. 文件共享通知
2-f. 编辑文件属性
文件所有者每次更改文件的属性时,将向分享该文件的所有用户发送一封电子邮件,通知他们文件已更新(见图 23)。为此:
- 打开属于您的文件。
- 单击 More Action,然后单击 Edit Properties。
- 更改文件名或文件描述。
- 单击 OK。
图 23. 文件编辑通知
注意,如果用户想要收到通知,则需要单击 Set Mail Notification 启用通知。
3-f. 为共享文件添加评论
用户每次添加一个新的评论时,将发送一封电子邮件,通知共享文件有新的评论(见图 24)。为此:
- 打开您共享的文件,或任何公共文件。
- 单击 Comment 选项卡。
- 向文件添加评论。
图 24. 文件评论通知
Wikis 是 Lotus Connections 中帮助我们创建 wiki 的部分。在 Wikis 中,您甚至还可以编辑内容,或向现有的 wiki 添加内容,从而与其他同事进行合作。
在 Wikis 中,根据表 7 的操作创建电子邮件。
表 7. Wikis 电子邮件操作 / 模板位置
| 参考 | 操作 | 类型 | 模板 |
| 1 -g | Editing the wikis properties | mediaEdit | {notification.source.url}/wikis/email/mediaEditMail .xml |
| 2-g |
Adding a comment to a wiki where you work on | commentAdd | {notification.source.url}/wikis/email/ commenAddtMail.xml |
1-g. 编辑 wiki 属性
当某人更改了 wiki 的属性时,将发送一封电子邮件,通知您您感兴趣或关注的 wiki 的属性已经更改(见图 25)。为此:
- 进入 Wikis。
- 打开您有权限更改其属性的 wiki。
- 单击 Edit。
- 更改 wiki 并保存它。
2-g. 向您关注的 wiki 添加评论
图 25. Wiki 编辑通知
将给您发送一封电子邮件,通知您您所关注的 wiki 有新的评论(见图 26)。
为此,在 Wikis 中,打开一个 wiki 并单击 Add Comments。
图 26. Wiki 评论通知
在 Lotus Connections 2.5 中,一共有 7 个使用 NF 通过电子邮件向用户发送通知的组件。它们是:
- Activities
- Bookmarks
- Blogs
- Communities
- Profiles
- Files
- Wikis
组件能够提供一组模板,用于生成您希望支持的通知内容。Lotus Connections 2.5 中的模板基于 JSP 或 XML 文件,并且每个组件都有一个使用 NF 的 EAR 文件。
NF 是可配置的,这借助储存在 LotusConnections-config 之下的 notification-config.xml文件,其位置为:
../WebSphere/AppServer/profiles/<profile name>/config/cells/<cell name>/ LotusConnections-config
LotusConnections-config 包含以下文件:
--notification-config.xml
--notification-config .xsd
notification-con fig.xml 文件被配置为使用 NF 框架,并且可以从不同的组件共享和查询。notification-con fig.xsd 用于确认 notification-con fig.xml 的格式是否正确。
notification-con fig.xml 文件用于配置框架,它包含两个重要部分。在顶端的部分,管理员可以配置发送电子邮件的方式。底端的部分包含与使用 NF 的组件相关(Activities 和 Bookmarks 等)的信息。
notification-config.xml大体可分为 3 部分:
- Properties
- Channel config: email channel config
- Template(这是本白皮书关注的主要部分)
在这个部分,我们描述 NF 能够使用的一些常见属性。例如,在以下代码中:
<properties> <property name="globalSenderEmailAddress">global-admin@your-email¬domain .com</property> </properties> |
可以为所有通知指定一个全局的发件人电子邮件地址。当 Lotus Connections 在电子邮件隐藏模式下工作时,将使用该设置。可以在模板部分用另一种方式重写这个全局设置,其中管理员能够为每个不同的通知模板指定一个不同的发件人。
3.2 Channel Con fig – Email Channel con fig
我们在这个部分指定如何定义 SMTP 服务器以及如何引用它。此外,我们还可以在此处添加一些 JavaTMMail 在邮件发送期间使用的属性。NF 通过两种方式来引用 SMTP 服务器:
- 使用 DNS MX 服务器解决方案
- 使用在 IBM WebSphere® Application Server 中设置的对 JNDI 邮件会话的引用
如果您想使用 DNS MX 解决方案,您必须将 useJavaMailProvider设置为 false,并创建您希望用来查找 MX 记录的 DNS。您还可以配置一些可以直接从 Java Mail 使用的特殊属性,比如 Debug 模式和超时(见清单 1):
清单 1. Java Mail 属性
<channelConfigs>
<emailChannelConfig>
<useJavaMail Provider>false</useJavaMai lProvider>
<smtpJ N DILooku p>
<smtpJ N DI LookupU RL>dns: mycompny.com</smtpJ N DI LookupU RL>
<authentry>smtpAdmin</authentry>
<javamail>
<property name="mail.debug">false</property>
<property name="mail.smtp.connectiontimeout"> 120000</property>
<property name="mail.smtp.timeout">1 20000</property>
<property name="mail.smtp.port">465</property>
<property name="mail.smtp.socketFactory.port">465</property>
<property name="mail .smtp.socketFactory.class">
javax.net.ssl .SSLSocketFactory</property>
<property name="mail.smtp.socketFactory.fallback">false</property>
</javamail>
</smtpJ N DI Lookup>
<maxRecipients>50</maxRecipients>
</emailChannelConfig>
</channelConfigs>
|
如果您喜欢将 NF 配置为使用在 WebSphere Application Server 中定义的 Mail Session,那么必须将 useJavaMailProvider设置为 true(见清单 2):
清单 2. useJavaMailProvider 被设置为 true
<channelConfigs>
<emailChannelConfig>
<useJavaMail Provider>true</useJavaMail Provider>
<maxRecipients>50</maxRecipients>
</emailChannelConfig>
</channelConfigs>
|
使用这种方式时,NF 将查询 WebS phere Application Server 以获取需要使用的 SMTP 服务器。
在两种配置中管理员都能够配置 maxRecipients,这是每封电子邮件的收件人的最大数量。例如,如果 NF 需要向 100 位用户发送消息,并且 maxRecipients被设置为 50,那么将创建两个电子邮件,它们的 TO 字段分别有 50 个收件人。
该设置对性能非常重要,并且必须与 SMTP 服务器的吞吐量保持一致,从而保持合适的负载。默认值设置为 50;不过,如果管理员知道 SMTP 服务器具有更大的处理能力,那么可以增加收件人的数量。
要了解如何配置这个部分和后台基础设施的更多信息,请参考 wiki 文章“Configuring notifications in IBM Lotus Connections 2.0”。
当将 NF 使用的邮件模板配置为编写电子邮件时,这部分是最重要的。该部分位于文件的底端。注意,这里有一个摘要;我们将在后文仔细查看这个部分。
清单 3 显示了模板的标准配置。
清单 3. 标准模板配置
<templates>
[...omissis. . .]
<source enabled="true" imagesU RL="{notification.source.url}/templates"
name="dogear">
<type name="notify">
<channel enabled="true" name="email">
<property name="sender">
dogear-admin@your-emai l-domain.com
</property>
<property name="url">
{notification.source.url}/templates/ notifytemplate.jsp
</property>
</channel>
<channel enabled="true" name="event">
<property name="eventName">dogear.notification.notify</property>
<property
name="transformerClass">com. ibm.
lotus.connections.core.notify.channels.event.DogearNotificati
onEventTransformer </property>
</channel>
</type>
</source>
[...omissis. . .]
</templates>
|
模板 是在 templates 标记之间定义的。模板部分通常为每个组件包含多个模板,其中组件由 source name定义。因此,每个组件都被作为一个通知源引用,并且可以使用 enabled属性启用或禁用源的通知。
以上例子中的源称为 Dogear(在 Lotus Connections 2.5 中称为“Bookmarks”),它可以发送不同类型的通知,并且每个通知类型都基于不同的模板(这些模板的内容和布局可以定制)。通知甚至还可以包含图像,使用 imageURL属性指定图像的文件夹位置。
另外还要注意,源可以通过两种通信渠道(电子邮件和事件)发送通知。通过渠道名指定渠道。在这里,我们主要关注通过电子邮件渠道发送的通知,以及如何配置它们。
清单 4 列出了电子邮件渠道使用的选项。
清单 4. 电子邮件渠道选项
<channel enabled="true" name="email">
<property name="sender">
dogear-admin@your-emai l-domain.com
</property>
<property name="url">
{notification.source.url}/templates/ notifytemplate.jsp
</property>
</channel>
|
当 Lotus Connections 被配置为不显示电子邮件地址时,将使用 sender属性。如果没有指定,将使用 globalSenderEmailAddress 属性;否则,将重写全局设置。
url 属性指定用于创建通知的模板位置。模板可以是 JSP 或 XML 文件。
在运行时从使用 NF 的组件指定 place holder url,以确保完整的 Ulrich (http://.. ../template.jsp, 或者 file://. ../template.xml) 与部署保持一致。
模板是组件用于定制通过 NF 发送的电子邮件的方式。您可以为源组件支持的各种通知类型提供模板。
创建模板的惟一需求是:
- 可以通过 HTTP(S) 或直接从文件系统加载模板:
- 使用 url 值通过 HTTP(S) 加载模板。
- 从部署 Lotus Connections 的文件系统加载模板时,将使用 file 值。
- 当框架加载页面时,它可以通过模板 url 或通知对象发送参数。
- 在加载之后,模板将返回文本内容。注意,返回的内容可能是纯文本或 HTML。
在大部分情况下,模板必须将来自源通知的内容替换成模板文本。可以使用在 {...}(花括号)中定义的替换参数完成该操作。
注意:
- 有两种类型的替换参数(变量):由 NF 定义的参数或由源组件定义的参数。
- 您不能定制发布到模板的参数,因为它们是固定的;不过,您可以通过显示或隐藏它们改善邮件布局。
4.1.1 由 NF 定义的变量
有一部分参数可用于任意模板,如表 8 所示。
表 8. 来自 NF 框架的变量
| 参数 | 描述 |
|---|---|
| {notification.sender.name} | 通知发送者的名称 |
| {notification.sender.email} | 通知发送者的地址 |
| {notification.replyto.name} | 通知的回复名称 |
| {notification.replyto.email} | 通知的回复邮件地址 |
| {notification.source} | 通知源组件 |
| {notification.type} | 与源相关的通知类型 |
| {notification.subject} | 通知的邮件主题 |
4.1.2 由源组件定义的变量
Lotus Connections 中的每个组件都可以向模板发送一组定制变量。
要定制模板,了解模板能够使用的变量比了解变量的传递方式更重要。
变量在花括号 { }中定义,例如 ,{myvariable}。模板中的变量通常以这种方式出现,您也可以通过这种方式搜索它们。
警告:在定制现有的模板时,一定要保留 NF 定义的所有变量(如以上的表 8 所示);否则,收件人将不能收到所有信息。
我们已经讨论过,邮件模板可以基于 JSP 文件或 XML 文件。Activities、Bookmarks、 Communities 和 Profiles 基于 JSP,而 Files 和 Wikis 基于 XML。
邮件模板支持本地化消息,实现方式取决于模板是基于 JSP 还是基于 XML。下面列出了 Lotus Connections 2.5 中支持的 24 种语言模板:
阿拉伯语、捷克语、丹麦语、德语、希腊语、英语、西班牙语、芬兰语、法语、匈牙利语、意大利语、希伯来语、日语、韩语、荷兰语、挪威语、波兰语、巴西葡萄牙语、俄语、瑞典语、土耳其语、简体中文和繁体中文。
4.2.1 基于 JSP 文件的邮件
我们使用 JSP Standard Tag Library 支持 JSP 模板的本地化,该库提供的方法能够轻松本地化 JSP 中的内容。
使用该方法的 Activities、Bookmarks、Communities 和 Profiles:
表 9 显示了我们外部化 JSP 内容时组件使用的资源文件。
表 9. 资源文件
| 组件 | I18N 资源文件 | 资源文件的文件夹 |
|---|---|---|
| Activities | resources.properties | oawebui .war/WEB-I NF/lib/oawebui.jar/com/ibm/openactivities/ web/coreu i/resources |
| Bookmarks | resources.properties | dogear.webui .war/WEB-I NF/lib/dogear.svc.jar/com/ibm/dogear/ resources |
| Communities | resources.properties | comm.web.war/WEB-I NF/li b/comm .web.jar/com/ibm/tango/email/ resources/resources |
| Profiles | mail .properties | peoplepages.war/WEBINF/lib/peoplepages.svc.jar/com/ibm/ peoplepages/internal/service/notifications |
如上所述,每个资源文件都被翻译成 24 种语言。资源文件的文件夹包含表 10 中列出的所有文件。
表 10. 资源文件的文件夹的内容
| 文件 | 语言 | 文件 | 语言 |
|---|---|---|---|
| resources_ar.properties | Arabic | resourcesja.properties | Japanese |
| resources_cs.properties | Czech | resources_ko. properties | Korean |
| resources_da.properties | Danish | resources_nl.properties | Dutch |
| resources_de.properties | German | resources_no.properties | Norwegian |
| resources_el.properties | Greek | resources_pl.properties | Polish |
| resources_en.properties | English | resources.properties | default |
| resources_es.properties | Spanish | resources_pt_BR.properties | Brazil |
| resources_fi.properties | Finnish | resources_pt.properties | Portuguese |
| resources_fr.properties | French | resources_ru. properties | Russian |
| resources_hu.properties | Hungarian | resources_sv.properties | Swedish |
| resources_it.properties | Italian | resources_tr.properties | Turkish |
| resources_iw.properties | Hebrew | resources_zh. properties | Simplified Chinese |
| resourcesja.properties | Japanese | resources_zh_TW.properties | Traditional Chinese (Taiwan) |
在以上文件中,外部化的资源基于一组属性值和变量。在某些情况下,键的值可能包含或不包含外部化字符串。
在下面这个例子中,既有不包含任何变量的外部化文本,也有包含一个或多个变量的文本:
email.open.activity=Open this: activityemail.notify.body.email.empty=
<b>{activity.event.sender.display.name}</b> has notified you about
<b> {activity.node.name}</b>
|
第一行不包含任何外部化字符串,而第二行包含两个外部化字符串,它们被包围在花括号中。
注意,外部化资源可以使用 HTML 代码,如以上例子所示。在运行时,FMT 和 JSP 将选择正确的文件,并使用文件中基于 Recipient Locale 的信息。
下面的样例代码显示 JSP 如何使用 FMT 框架加载外部化字符串:
[....jsp code ...] <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> [....jsp code ...] <fmt: message key="email .open.activity"/> [... jsp code ...] |
要修改和定制邮件内容,您必须根据您的部署支持的语言更改这些属性。作为一项最佳实践,我们建议您也修改默认资源。
总而言之,处理 JSP 文件时,我们使用一个 JSP 模板,以及用于储存本地化内容的一组资源属性。这不适用于基于 XML 的模板。
基于 XML 文件的邮件
为了支持基于 XML 的模板的本地化,我们使用已经包含本地化资源的 XML 模板。
Files 和 Wikis 使用这种方法:
出于这个原因,每个模板 XML 文档都必须翻译为多种受支持的语言。例如, commentAddMail.xml文件的模板按照表 11 进行翻译和复制。
表 11. 已翻译的 XML 文件 |
| 文件 | 语言 | 文件 | 语言 |
|---|---|---|---|
| commentAddMail_ar.xml | Arabic | commentAddMailja.xml | Japanese |
| commentAddMail_cs.xml | Czech | commentAddMail_ko.xml | Korean |
| commentAddMail_da.xml | Danish | commentAddMail_nl .xml | Dutch |
| commentAddMail_de.xml | German | commentAddMail_no.xml | Norwegian |
| commentAddMail_el .xml | Greek | commentAddMail_pl .xml | Polish |
| commentAddMail_en.xml | English | commentAddMail .xml | default |
| commentAddMail_es.xml | Spanish | commentAddMail_pt_BR.xml | Brazil |
| commentAddMail_fi.xml | Finnish | commentAddMail_pt.xml | Portuguese |
| commentAddMail_fr.xml | French | commentAddMail_ru.xml | Russian |
| commentAddMail_hu.xml | Hungarian | commentAddMail_sv.xml | Swedish |
|---|---|---|---|
| commentAddMail_it.xml | Italian | commentAddMail_tr.xml | Turkish |
| commentAddMail_iw.xml | Hebrew | commentAddMail_zh.xml | Simplified Chinese |
| commentAddMailja.xml | Japanese | commentAddMail_zh_TW.xml | Traditional Chinese (Taiwan) |
commentAddMail.xml 是一个包含两个 CDATA 部分的 XML 文件,我们在其中定义纯文本或 HTML 格式的电子邮件。在这两个部分中,我们甚至可以访问通知变量,并且仍然是使用花括号 {. .}。
纯文本内容:
<qkr:body mime-type="text/plain">
<![CDATA[ plain text]]>
</qkr:body>
|
HTML 内容:
<qkr:body mime-type="text/HTM L"><![CDATA[
<!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN"
"http:// www.w3.org/TR/html4/loose.dtd">
<HTML>
HTML code
]]></qkr:body>
|
当您决定基于 XML 模板定制内容时,必须根据您的配置支持的语言更改 XML。作为最佳实践,我们建议您也修改默认 XML。
定制操作包括修改模板 JSP、属性、资源或 XML 文件。修改了这些文件之后,那么就可以使用新的文件更新部署,以让新的修改生效。
修改模板时,了解模板中的可用变量非常重要。了解模板中可用的变量之后,您就可以轻松修改模板的外观。您还可以修改电子邮件的内容和文本,为此,您必须指定哪些是外部化资源。
总体而言,要为 Activities、Bookmarks、 Communities 或 Profiles修改模板时,就必须修改 JSP 和链接资源文件;如果您需要为 Files 和 Wikis 修改模板,那么就必须更新 XML 文件。取决于您选择的更新,可能需要重启服务器。
如前所述,这组变量是已经在每个模板中定义的可用变量:
{notification .sender. name}
{notification .sender.email}
{notification . replyto. name}
{notification . replyto.email}
{notification .source}
{notification .type}
{notification .subject}
{notification .source.url}
{notification .container.u rl}
{notification . item.url}
|
除了这组变量之外,每个组件还为模板提供其他变量。在下面的表 12-18 中,您可以看到在每个模板组件中使用的所有变量:
表 12. Activities 变量
| 参考 | 类型 | 模板 | 变量 |
|---|---|---|---|
| 1-a | notify | notifyMail.jsp | {message} |
| {activity.node.description} | |||
| {activity.name} | |||
| {activity.description} | |||
| {activity.event.sender.display.name} | |||
| {activity.node.name} | |||
| 2-a | autoComplate | autoComplateActivityMail.jsp | {activity.name} |
| {autocomplate.days.since.lastmod} | |||
| {autocomplate.days.to.completiom} | |||
| {activity.description} | |||
| 3-a | create | createMail.jsp | {activity.name} |
| {activity.description} | |||
| {activity.event.sender.display.name} | |||
| 4-a | add-member | addMemberMail.jsp | {activity.name} |
| {activity.description} |
表 13. Bookmarks 变量
| 参考 | 类型 | 模板 | 变量 |
|---|---|---|---|
| 1-b | notify | notifytemplate.jsp | {myBookmarksURL} |
| {helpUrl} | |||
| {comments} | |||
| {senderName} | |||
| {bookmarkTitle} |
表 14. Blogs 变量
| 参考 | 类型 | 模板 | 变量 |
|---|---|---|---|
| 1-c | notify | notify.jsp | {mail.subject} |
| {notify.sender} | |||
| {entry.title} | |||
| {entry.link} | |||
| {notify.description} | |||
| {entry.website.link} | |||
| {entry.author} | |||
| {blog.about.url} | |||
| 2-c | notifyflagged | notifyflagged.jsp | {mail .subject} |
| {reporter} | |||
| {entry.title} | |||
| {entry.link} | |||
| {comment} | |||
| {entry.content} | |||
| {entry.author} | |||
| {reviewer.console.link} | |||
| 3-c | confirmflagged | confirmflagged.jsp | {mail .subject} |
| {reporter} | |||
| {entry.title} | |||
| {administrator.email} | |||
| 4-c | notifyquarantine d | notifyquarantined.jsp | {mail .subject} |
| {reporter} | |||
| {entry.title} | |||
| {administrator.email} | |||
| 5-c | notifyedit | notifyedit.jsp | {mail .subject} |
| {comment.creator} | |||
| {comment.content} | |||
| {comment.commentURL} | |||
| {comment.deleteURL} | |||
| 6-c | msg | Msg.jsp | no longer used since 2.0.1 |
| 7-c | approvedmsg | approvedmsg | {mail .subject} |
| {comment.commentURL} |
表 15. Communities 变量
| 参考 | 类型 | 模板 | 变量 |
|---|---|---|---|
| 1-d | broadcastMail | broadcastMail.jsp | {body} |
| {community.url} | |||
| {leave.community.url} | |||
| {notification.sender.name} | |||
| {community.name} | |||
| 2-d | memberAdded | MemberAdded .jsp | {notification.sender.name} |
| {community.name} | |||
| {community.url} | |||
| {community.description} | |||
| 3-d | memberRemoved | memberRemoved.jsp | {notification.sender.name} |
| {community.name} | |||
| {community.url} | |||
| {community.description} | |||
| 4-d | requestToJoin | requestToJoin .jsp | {request.explanation} |
| {community.name} | |||
| {community.members. url} | |||
| {community.url} | |||
| {notification.sender.name} | |||
| 5-d | forumTopicCreated | topicCreated .jsp | {email .topic.name} |
| {email .topic.body} | |||
| {forum.dashboard.url} | |||
| {topic.url} | |||
| {community.name} | |||
| 6-d | msg | Msg.jsp | no longer used since 2.0.1 |
| 7-d | approvedmsg | approvedmsg | {mail .subject} |
| {comment.commentURL} |
表 16. Profiles 变量
| 参考 | 类型 | 模板 | 变量 |
|---|---|---|---|
| 1 -e | notify | inviteCollegueMail.jsp | {sender.profile.url} |
| {email .invite.sender.name} | |||
| {email .invite.body} | |||
| 2-e | notifyBoardOwnerForEntry | notifyBoardOwnerForEntry.jsp | {board.actor.profile.url} |
| {board.actor.name} | |||
| {board.entry.text} | |||
| {board.owner.profile.url} | |||
| 3-e | notifyBoardOwnerForComment | notifyBoardOwnerForComment.jsp | {board.actor.name} |
| {board.owner.profile.url} | |||
| 4-d | notifyEntryOwnerForComment | notifyEntryOwnerForComment.jsp | {board.owner.name} |
| {board.comment.text} | |||
| {board.owner.profile.url} | |||
| {board.entry.owner.profile.url} |
表 17. Files 变量
| 参考 | 类型 | 模板 | 变量 |
|---|---|---|---|
| 1-f | mediaShare | shareMail.xml | {notification.share.user.from.name} |
| {notification.media.title} | |||
| {notification.share.summary} | |||
| {notification.media.url} | |||
| {notification.media.download.url} | |||
| {notification.share.sharedwith.url} | |||
| {notification.subscribe.url} | |||
| {notification.media.summary} | |||
| {notification.media.lastupdate} | |||
| {notification.media.size} | |||
| {notification.permission.desciption} | |||
| 2-f | mediaEdit | mediaEdit.xml | {notification.logo} |
| {notification.media.editor.name} | |||
| {notification.media.title} | |||
| {notification.media.url} | |||
| {notification.media.change.summary} | |||
| {notification.media.editor.name} | |||
| {notification.unsubscribe.url} | |||
| {notification.home.url} | |||
| {notification.media.size} | |||
| 3-f | commentAdd | commentAddMail .xml | {notification.logo} |
| {notification.commenter.name} | |||
| {notification.media.title} | |||
| {notification.media.url} | |||
| {notification.media.download.url | |||
| {notification.media.library.url} | |||
| {notification.unsubscribe.url} | |||
| {notification.comment.text} | |||
| {notification.home.url} |
表 18. Wikis 变量
| 参考 | 类型 | 模板 | 变量 |
|---|---|---|---|
| 1 -g | mediaEdit | mediaEditMail.xml | {notification.commenter.name} |
| {notification.media.title} | |||
| {notification.comment.text} | |||
| {notification.comment.url} | |||
| {notification.media.url} | |||
| {notification.unsubscribe.url} | |||
| {notification.home.url} | |||
| 2-g | commentAdd | commentAddMail.xml | No variables |
管理员可以通过执行以下操作来定制通知电子邮件:
- 改变 UI 的样式和观感
- 移动或删除可用变量
- 对电子邮件更新、删除或添加个人消息
JSP 和 XML 模板都支持这组操作,但两个模板的定制方法略有不同。
改变 UI 的样式和观感
为此,管理员可以执行以下步骤:
对于基于 JSP 的模板:
- 在电子邮件和生成电子邮件的操作之间建立关系。
- 根据该关系获取原始 JSP 文件。
- 将模板复制到一个文件夹中。
- 编辑模板,使其具有新的观感。
- 停止服务器。
- 将模板复制回到原始 JSP 所在的位置,覆盖旧文件。
- 重启服务器。
注意:为了确定原始 JSP 文件的位置,请参考表 1-5 获取模板位置。
对于基于 XML 的模板:
- 在电子邮件和生成电子邮件的操作之间建立关系。
- 根据该关系获取原始 XML 文件。
- 将模板复制到一个文件夹中。
- 编辑模板,使其具有新的观感。
- 对所有支持的语言重复这些更改。
- 停止服务器。
- 将模板复制回到正确的位置,覆盖旧文件。
- 重启服务器。
注意:为了确定原始 XML 文件的位置,请参考表 6-7 获取模板位置。
让我们查看一个例子。在这个例子中,管理员可以更改生成原始消息的 Activities 通知的各个方面,如图 27 所示。
图 27. 原始的 Activities 电子邮件
该电子邮件由操作 1-a 触发:发送摘要通知 (notifyMail.jsp)。图 28 显示了 notifyMail.jsp 的一部分。
图 28. notifyMail.jsp 的样例部分
如果管理员希望使用 ______________ 符号而不是 ……………………符号修改电子邮件的观感,那么需要根据图 29 修改 JSP。
图 29. 修改后的 JSP
修改之后,终端用户看到的消息邮件如图 30 所示。
图 30. 修改后的电子邮件
注意,在这个例子中使用基于 JSP 的模板,因此不用重启服务器。
这个简单的例子展示了更改电子邮件 UI 有多么简单;更改基于 XML 的模板的外观也很简单;不过,对于基于 XML 的模板,管理员需要重启服务器。
在下一个例子中,我们将探索在知道模板中的变量之后,可以执行哪些更加复杂的操作。
移动或删除可用变量
移动或删除变量的步骤与前面的“更改 UI 的样式和观感”部分一样。在这个例子中,管理员必须知道可用的变量集。
对于操作 1-a:发送一个摘要通知,模板 JSP 使用表 19 显示的变量集。
表 19. 模板 JSP 变量
| 参考 | 类型 | 模板 | 变量 |
|---|---|---|---|
| 1-a | notify | notifyMail.jsp | {message} |
| {activity.node.description} | |||
| {activity.name} | |||
| {activity.description} | |||
| {activity.event.sender.display.name} | |||
| {activity.node.name} |
要通过移动变量改变邮件的行为,管理员必须执行以下步骤:
对于 JSP:
- 在电子邮件和生成电子邮件的操作之间建立关系。
- 根据该关系获取原始 JSP 文件。
- 将模板复制到一个文件夹中。
- 通过移动或删除变量编辑模板。
- 停止服务器。
- 将模板复制回到正确的位置,覆盖旧文件。
- 重启服务器。
对于 XML:
- 在电子邮件和生成电子邮件的操作之间建立关系。
- 根据该关系获取原始 XML 文件。
- 将模板复制到一个文件夹中。
- 通过移动或删除变量编辑模板。
- 对所有支持的语言应用这些更改。
- 停止服务器。
- 将模板复制回到正确的位置,覆盖旧文件。
- 重启服务器。
例如,如果我们想要更改 Activity Name 的位置并删除 Creation Date 和 Activity Description,我们将对图 31 所示的模板进行更改,更改后的模板如图 32 所示。
图 31. 原始模板
图 32. 修改后的模板
将更改保存到正确位置并重启服务器之后,将得到如图 33 所示的电子邮件。
图 33. 修改后的电子邮件
如您所见,现在已经删除了 Activities 目标和最后的更新日期。
对电子邮件更新、删除或添加个人消息
这是管理员能够在模板上执行的最后一种更改,同时也是最有趣的更改,因为将可以使用独特的消息定制电子邮件的内容。为此,管理员首先必须确定模板是基于 JSP 还是基于 XML。
如果模板基于 JSP,那么管理员必须标识使用哪个资源文件外部化电子邮件的内容,然后通过在内部更新适当的消息来编辑这些文件。
如果模板基于 XML,那么就非常简单,因为可以直接在文件上执行所有操作。
对于 JSP:
- 在电子邮件和生成电子邮件的操作之间建立关系。
- 根据该关系获取原始 JSP 文件。
- 在 JSP 中找到用于引用外部化消息的键。
- 找到包含外部化文本的资源文件。
- 使用新的消息编辑资源文件,并对所有支持的语言应用这些更改。
- 停止服务器。
- 将模板复制回到正确的位置,覆盖旧文件。
- 重启服务器。
对于 XML:
- 在电子邮件和生成电子邮件的操作之间建立关系。
- 根据该关系获取原始 XML 文件。
- 使用新的消息编辑 XML 文件,并对所有支持的语言应用这些更改。
- 停止服务器。
- 将模板复制回到正确的位置,覆盖旧文件。
- 重启服务器。
对于 1-a:发送一个摘要通知,模板 notifyMail.jsp使用储存在以下位置中的文件:
oawebui. war/WEB-INF/lib/oawebui.jar/com/ibm/openactivities/web/coreui/resources
因此,如果您想要更改消息,那么必须编辑位于该文件夹中的默认资源文件,以及所有其他文件,它们包含用 Lotus Connections 支持的语言翻译的内容。
要查找您的 JSP 使用的是什么,必须找到所有这些标记: <fmt:message key="my.key" />
然后,从属性文件查找 my.key并将链接值更改为 my.key。例如,让我们更改本例中使用的 Activity name 的标签:
<b><fmt: message key="emai l .activity.name" /></b> {activity. name}<b r>
在 resources.properties文件中直接与前面的 HTML 代码对应的条目是:
email.activity.name=Activity name:
我们可以将它更改为:
email.activity. name=Activity:
我们还可以以相同的方式更改 Activity 的主题,例如从:
email. notify.subject=[Activities] {activity. node. name}
更改为:
email. notify.subject=[Custom Activities] Post: {activity. node. name}
最后的通知如图 34 所示。
图 34. 修改后的电子邮件
您可以看到单词“name”已被删除,主题也被更改为以下新样式:
[Custom Activities] Post: Forum name
为了简化在电子邮件定制期间获取正确的修改文件的流程,以及简化使用已更新文件更新组件的 EAR 文件的过程,我们可以使用两个脚本 checkIn.sh和 checkOut.sh。
这些脚本可以在下载部分的 TemplateCheckInOut.zip 压缩文件中找到,您可以在解压缩之后运行它们。
TemplateCheckInOut.zip 文件包含以下文件:
- README.txt(一个简单的 README 文件,我们建议您先阅读它)
- init.sh(您 需要编辑它以设置一些重要变量的初始化文件脚本)
- initComponentUpdate.sh (不需要编辑的初始化脚本)
- checkIn.py (checkIn.sh 通过 WebSphere Application Server Admin 控制台使用它来更新已部署的 EAR;您不需要运行它)
- checkIn.sh (用于签入更新模板的脚本)
- checkOut.py (checkOut.sh 用于从 Lotus Connections 安装提取组件 EAR 的脚本;您不需要运行它)
- checkOut.sh (用于签出模板资源的脚本;需要编辑)
通过使用 checkIn.sh 和 checkOut.sh 您可以从已部署的 Lotus Connections 发行版提取和更新邮件模板。需要使用 init.sh 设置签入 / 签出脚本所需的环境变量。
表 20 总结了以上文件以及它们的描述和用途。
表 20. TemplateCheckInOut.zip 文件内容总结
| 文件 | 必须编辑吗 | 必须运行吗 | 用途 |
|---|---|---|---|
| README.txt | N | N | 文件说明 |
| Init.sh | Y | N | 初始化脚本所需的一些环境变量 |
| InitComponentToUpdate.sh | N | N | 初始化脚本所需的一些环境变量 |
| CheckIn.py | N | N | 从 checkIn.sh 执行 |
| CheckIn.sh | N | Y | 签入修改后的模板 |
| CheckOut.py | N | N | 从 checkOut.sh 执行 |
| CheckOut.sh | N | Y | 签出模板 |
在使用 checkIn.sh 和 checkOut.sh 之前,记得给所有解压文件授予适当的权限。您可以在解压缩文件之后使用以下命令为它们设置权限:
chmod 755 *
所有解压缩的文件都必须有根特权,您必须是根用户才能执行 checkIn.sh 和 checkOut.sh。在运行这些文件之前,必须确保:
- 必须拥有根特权。
- 所有文件都属于根用户和组。
- 所有 7 个文件(README 和 init.sh 等)都位于相同的目录下。
- WebSphere Application Server 处于运行状态,Lotus Connections 正常工作。
- 出现故障时,能够接受 Lotus Connections 的意外停机。
- 备份了您的部署。
- 正确编辑了 init.sh 文件。
此外还有记住,在运行 checkIn.sh 之后,必须重启 WebSphere Application Server 让修改生效。
运行 checkOut.sh 时,将在一个文件夹中创建目录。您可以将该文件夹放到 init.sh 中。如果您在 init.sh 中设置了 work_folder 之后,文件夹的内容将如下所示:
export work_folder=/root/connections/article/ear
在运行 checkOut.sh 之后,work_folder 将包含每个签出的组件的文件夹。例如,如果我们签出了所有组件,那么将得到:
[root@lc4eb2 740377211 ear]#ls
activities blogs communities dogear files profiles wikis
以下是在每个组件中能够找到的东西:
- 从 Lotus Connections 提取的 EAR 文件。
- 在签出操作期间用于解压缩 EAR 文件的 .tmp 文件夹。
- 包含需要编辑的资源文件的 i18n 文件夹;将使用这些文件外部化邮件模板。
- 包含需要编辑的 JSP 或 XML 文件的模板文件夹;使用这些文件来创建邮件模板。
- 在签入操作期间用于创建 update.zip的更新文件夹。
注意:当您处理 Activities、Blogs、Communities、Profiles 和 Bookmarks 组件时(在向后兼容的脚本中,我们仍然用以前的名称 Dogear 称呼 Bookmarks),通常 同时具有 i18n 文件夹和模板文件夹。
当处理 Wikis 和 Files 时,您 仅具有模板文件夹,因为 Wikis 和 Files 不使用外部资源文件外部化邮件内容。
在这个例子中,我们展示了活动的文件夹结构,但该结构对所有组件都是一样的:
[root@lc4eb27403772 11 activities]# ls activities.ear i18n template tmp update
要定制模板,您仅需要编辑 i18n 文件夹和模板文件夹中的文件。表 21 总结了我们讨论的文件夹以及它们的内容和用途。
表 21. 文件夹总结
| 文件夹 | 组件 | 必须编辑的内容 | 用途 |
|---|---|---|---|
| i1 8n | All, except Wikis and Files | Y | 翻译邮件内容 |
| template | All | Y | 定制邮件模板 (xml/ jsp) |
| tmp | All | N | 用于 checkOut.sh. |
| update | All | N | 供使用,用于创建 update.zip |
如何设置 init.sh
在运行 checkIn.sh 或 checkOut.sh 之前,您需要编辑 init.sh 。表 22 列出了需要编辑的变量。
表 22. 需要编辑的变量
| 变量 | 描述 |
|---|---|
was_user
| 用于登录到 WebSphere Application Server 管理员控制台 |
was_pwd
| 登录 WebSphere Application Server 控制台的用户密码 |
work_folder
| 工作文件夹,签出在该文件夹中提取组件模板,签入在该文件夹中更新 Lotus Connections 并使用它们 |
was_home
| 安装 WebSphere 的 WebSphere Application Server 主目录 |
was_profile
| 部署 Lotus Connections 的 WebSphere Application Server 配置文件名 |
lc25config _home
| LotusConnections-config 主文件夹路径 |
附带的 init.sh 已经包含一些值,因此要记得更改它们。此外, init.sh 还包含一些没有列出的变量,这些变量不能更改。
如何运行 checkOut.sh
checkOut.sh 文件从 Lotus Connections 签出模板和资源文件。在运行它之前,一定要确保执行第 38 页的检查列表中的前期任务操作。
运行 checkOut.sh 将得到以下结果: [root@lc4eb27403772 11 scripts]#./checkOut.sh
初始变量环境
输入您需要处理的组件
0 - All the components
1 - Communities
2 - Activities
3 - Blogs
4 - Dogear
5 - Wikis
6 - Files
7 - Profiles
输入组件序号,然后按 [ENTER]
如果您输入“0”,那么将提取所有组件。注意,每次最好仅处理一个组件。
组件被提取出来之后,您就可以在 i18n 文件夹和模板文件夹中编辑文件。在开始编辑这些文件之前,我们建议您备份原始文件。这样,即使破坏了模板,您还可以使用原始模板。编辑完成之后,您可以使用 checkIn.sh 签入修改后的文件。
如何运行 checkIn.sh
checkIn.sh 文件用于签入您已经修改的模板和资源文件。在运行它之前,您一定要执行前面提到的检查列表中的前期任务操作。
运行 ./checkIn.sh 将得到以下结果:
[root@lc4eb2 740377211 scripts]#./checkIn.sh
初始变量环境
输入您需要处理的组件
0 - All the components
1 - Communities
2 - Activities
3 - Blogs
4 – Dogear
5 – Wikis
6 - Files
7 - Profiles
输入组件序号,然后按 [ENTER]
如果您输入“0”,那么将更新所有组件。注意,每次最好仅处理一个组件。同时更新所有组件会加大服务器的压力,甚至可能导致 OutOfMemory 异常。将文件签入之后,需要重启服务器以让更改生效。
警告:在卸载、安装、迁移或更新 Lotus Connections 之后,所有定制配置将被覆盖。因此,我们强烈建议您保存并存档组件的定制配置。
进行任何产品更新 / 更改之后,您的所有定制配置将丢失,这时您将需要重新应用以前保存的定制配置。
在这份白皮书中,我首先介绍了 Lotus Connections 组件如何创建电子邮件通知,并展示它们在用户邮箱中的外观,接着详细描述了如何配置 Notification Framework。
我们还解释了如何定制 NF 用于写邮件的模板,从而定制电子邮件的观感。最后,我们讨论了如何使用脚本签入或签出现有的模板。
学习
-
Lotus Connections 产品页面:http://www.ibm.com/software/cn/lotus/products/connections/。
-
Lotus Connections 文档页面: http://www.ibm.com/software/lotus/products/connections/support/。
-
Lotus Connections 2.5 信息中心:https://infocenters.lotus.com/lc25beta/index.jsp。
-
访问“IBM Lotus 技术白皮书页面”:查看更多 IBM Lotus 技术白皮书。
讨论
-
Synch.rono.us,这是 Lotus Connections 产品团队的博客: http://synch.rono.us/social/blog.nsf/。
-
参与 Lotus Connections 论坛:http://www.lotus.com/ldd/lcforum.nsf。