增加订阅邮件设计方案

参考了大兴的意见

http://www.learndiary.com/disDiaryContentAction.do?goalID=33

http://www.learndiary.com/disDiaryContentAction.do?goalID=67

增加订阅邮件的功能分析设计如下:

(1)把订阅的链接放在“显示目标内容” 这个页面上,功能为设计两个:"订阅目标" "退订目标"

(2)保存订阅信息: 在数据库中单独建一个表(名为usermailgoal)保存“用户ID---目标ID”的订阅关系,涉及到的属性还有订阅的时间,如果用户退订了,则在数据库中删除这条记录;

(3)用户提交日记:用户提交日记后,一方面把日记存入数据库,另一方面则向订阅了对应目标的用户发出电子邮件;过程应该是这样的: 以目标ID为关键搜索usermailgoal表,搜索到用户ID,再根据用户ID得到对应的邮件地址,生成发送邮件地址列表,这样就可以把邮件 发出去了;然后,把发送情况告知写日记的用户,再按原来的流程回到日记列表页面;

第(3)个是大兴的意见,我个人的设计是这样的: 用户提交日记后,把日记存入数据库后就回到日记列表页面,发出电子邮件则由后台线程来处理,而不是等到邮件发出去了才回到日记列表页面,因为如果要发送很多,例如十几到几十封邮件(即使是只有几封)都是很费时的,这样用户会觉得系统得很慢,另外发送邮件过程对于用户来讲透明为好,如果想知道给哪些人发了邮件,则可通过"检索"看哪些用户订阅了这个目标.发送情况如有错误则写入错误日志文件.  

请大家多提意见.

我对程序程序设计队当前5个目标模块的一点

    我认为,现阶段开发这5个目标有下列目的:完善学习日记开发小组的开发交流平台,增进开发小组成员

之间的协作能力,熟悉学习日记模型的现有运作方式,减轻新版学习日记实施阶段的负担。

    我对这5个目标的一些思考,仅作参考:

**********************************************

    1、解决learndiaryV0.9的重复提交问题:现有的学习日记不能完全防止用户无意的和熟练者的故意重复

提交,只要用户清除了程序中的“havePosted”提交标志,重复提交的缺口就打开了。效率的考虑,不能用查

数据库记录的方式解决。我在网上找到一篇相关资料仅供参考(我还没有弄懂):

“http://www.softhouse.com.cn/html/200410/2004102516370600001323.html”

**************************************

  

2、添加开发小组内部成员查看成员资料功能:新的目标,还没有思考过。

**************************************

3、改善系统的登录方式:

    我的一点思路:

    可以设置cookie在用户机器上保存密码,用户可以选择记住密码,下次访问不必重新输入密码。而且,输

入一个url可以直接以自己的帐号进入。即在页面上部显示用户名和发帖数。

    没有登录的用户输入url也可以直接进入指定的页面查看内容,只不过在页面上部显示登录提示框。当用户登录后,就在相

同的位置显示登录欢迎信息和用户的发帖数等等。

    可以参照www.delphibbs.com的登录方式实现。

我原先的一点思考(但是基本上还是封闭的作法,不可取,可以参考一下其中的一部分):

http://www.learndiary.com/disDiaryContentAction.do?goalID=73

*************************************

4、改善系统的导航功能:

    关于保持访问路径的方法,我想了一点方法,仅供参考:用一个LinkedList对象保存访问路径字符串,其

中的每一个元素是当前路径的字符串,在LinkedList中通过添加元素、查找元素、删除元素可以实现路径的跳

转和回溯。

   

****************************************

5、增加订阅邮件的功能:

我在先前的一点思考:

http://www.learndiary.com/disDiaryContentAction.do?goalID=33

http://www.learndiary.com/disDiaryContentAction.do?goalID=67

我找到的一点资料:

http://blog.csdn.net/bromon/archive/2004/06/22/22645.aspx

另外一点想法:

保存邮件的集合可以用Set,剔除一个人多个帐号而形成的重复邮件地址;

邮件发送成功后,可以返回报告给哪些人发了邮件;

使用smtp验证。   

*********************************************

以上的资料仅供参考,有的方法正确性有待验证。

为了大家交流方便,请大家尽量有详细的注释。能形成文档的东西尽量形成文档。

登录方式的改动步骤!

1.按大兴的包结构建立com.learndiary.website包,把原文件到了进去。资源文件放在了该包下。

2。struts-config.xml中改为<message-resources parameter="com.learndiary.website.application"/>

3.把index.jsp另存为login.jsp。index.jsp中内容全部改动。

4。struts-config.xml中改为

     <action   path="/logoutAction"  type="com.learndiary.website.action.account.LogoutAction">

     <forward name="logout" path="/login.jsp" />

学习日记开发小组项目实施社区

希望项目组各成员把在学习日记项目实施阶段遇到的技术性问题和解决方案,和有关的学习资料、学习心得共享出来。

请踊跃发帖!

1、在这个目标下的评论中用于成员间的日常交流;

2、在这个目标下的日记中记录您个人的相关日记。