免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: netkiller
打印 上一主题 下一主题

[Mail] 说实在的igenus开的很烂。作者没有OOP概念。 [复制链接]

论坛徽章:
0
41 [报告]
发表于 2003-07-01 13:27 |只看该作者

说实在的igenus开的很烂。作者没有OOP概念。

怎样才能进去啊?试了几次都进不去?

论坛徽章:
0
42 [报告]
发表于 2003-07-01 14:15 |只看该作者

说实在的igenus开的很烂。作者没有OOP概念。

原帖由 "netkiller" 发表:
http://home.9812.net:8080/webmail/
test@9812.net
test

使用imap/pop3实现。。
   
呵呵,原来用的是jwebmail,我找了好久都没找到一个可以进去的demo,谢谢!

论坛徽章:
0
43 [报告]
发表于 2003-07-01 14:52 |只看该作者

说实在的igenus开的很烂。作者没有OOP概念。

jwebmail 值得研究。。我瞧了一下代码。写的不错。。     

我这几天在写一个postfix Admin 的java API
实现用户管理。域管理。很简单。目前核心class以完成,并测试。
界面部分。我不打算做了。。

通过API 可以很容易实现
web jsp
swing GUI
java applie
java web start

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
44 [报告]
发表于 2003-07-01 15:03 |只看该作者

说实在的igenus开的很烂。作者没有OOP概念。

哈哈,不是商用的,就free出来好了。让别人可以基于你的api来开发界面多好。

论坛徽章:
0
45 [报告]
发表于 2003-07-01 15:07 |只看该作者

说实在的igenus开的很烂。作者没有OOP概念。

是free的。不是open source 因为这东西是给公司做的。。

论坛徽章:
0
46 [报告]
发表于 2003-07-01 15:16 |只看该作者

说实在的igenus开的很烂。作者没有OOP概念。

做个调查。java 连接LDAP。大家都用什么方法???
jndi
novell ldap API
jdbc - ldap (sql操作ldap)

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
47 [报告]
发表于 2003-07-01 15:28 |只看该作者

说实在的igenus开的很烂。作者没有OOP概念。

好像novell的jldap用的多些,也是openldap推荐的。

我觉得jndi也不错

论坛徽章:
0
48 [报告]
发表于 2003-07-02 08:41 |只看该作者

说实在的igenus开的很烂。作者没有OOP概念。

CRAM-MD5
认证谁做过。。
是不是
CRAM-MD5 AUTH
user-->;MD5-->;BASE64
pass-->;MD5-->;BASE64

论坛徽章:
0
49 [报告]
发表于 2004-03-08 09:50 |只看该作者

说实在的igenus开的很烂。作者没有OOP概念。

netkiller 兄
我觉得如果你觉得igenus开的很烂,实在没有办法修改,可以考虑由你牵头重写igenus项目,我们这些社区里的兄弟一定多多支持!我现在正在积极学习igenus,我个人觉得用起来还不错,很想参与其中,现在正在积极学习,其实很多开源项目都是经历很多次较大的改动才取得更好发展的!衷心祝愿igenus项目能够更好的发展下去!

论坛徽章:
0
50 [报告]
发表于 2004-03-08 10:15 |只看该作者

说实在的igenus开的很烂。作者没有OOP概念。

这个贴子.是很久以前发的.
开发 webmail 已经没有意义了..网上太多的版本了.如果不喜欢可以使用
mail  API 自己开发.如 javamail api

目前如果想搞邮件服务器.就入反拉圾,病毒,过滤,SSL加密,数字签名...入手..

还有就是写mail  与传真,短信集成..
这些也都不是难事...

我已经一年没搞邮件服务器.以后搞的机会更少..


  1. 如果你想开发.我给你点建议.
  2. 1, 要考虑多国语言问题.即使用语言包技术.编码采用UNICODE,如下..

  3. import java.util.*;

  4. public class Hello {
  5.        
  6.         public Hello() {
  7.                 // TODO: Add your code here
  8.         }
  9.         public static void main(String[] args) {
  10.                 Locale locale;
  11.                 ResourceBundle messages;
  12.                
  13.                 System.out.println("English:");
  14.                 locale = new Locale("en", "US");
  15.                 messages = ResourceBundle.getBundle("Hello", locale);
  16.                 System.out.println(messages.getString("GREETINGS"));
  17.                
  18.                
  19.                 System.out.println("Chinese:");
  20.                 locale = new Locale("zh", "CN");
  21.                 messages = ResourceBundle.getBundle("Hello", locale);
  22.                 System.out.println(messages.getString("chen->;GREETINGS"));
  23.         }
  24. }

  25. /*
  26. HELLO.properties
  27. GREETINGS=HELLO


  28. HELLO_en_US.properties
  29. GREETINGS=HELLO


  30. HELLO_zh_CN.properties
  31. GREETINGS=你好
  32. */
复制代码



  1. 2,各种认证模块
  2. 如,md5,crypt,sha1, cleartext......
  3. 这个可以使用JAVA中的.Properties  详细使用方法如下.

  4. package netkiller;

  5. import java.io.*;
  6. import java.util.*;

  7. public class Initializers {

  8.         private String init        = null;
  9.     private Properties props = new Properties();

  10.         public Initializers() {
  11.                 this.init = "netkiller.properties";
  12.                 this.load(init);   
  13.         }

  14.         public Initializers(String init) {
  15.                 this.init = init;
  16.                    this.load(init);   
  17.         }
  18.        
  19.         public String getProperty(String value){
  20.                 return props.getProperty(value);
  21.         }

  22.         public String getProperty(String value,String default_value){
  23.                 return props.getProperty(value,default_value);
  24.         }
  25.         public void setProperty(String key,String value){
  26.                 props.setProperty(key,value);
  27.         }
  28.         public void remove(String key){
  29.                 props.remove(key);
  30.         }
  31.         public void load(String file){
  32.                 try{
  33.                 FileInputStream fis = new FileInputStream(file);
  34.                 props.load(fis);
  35.                     fis.close();
  36.         }
  37.                 catch(java.io.FileNotFoundException e){
  38.                         System.out.println(e.toString());
  39.                 }
  40.                 catch(IOException e){
  41.                         System.out.println(e.toString());
  42.                 }               
  43.         }
  44.         public void store(){
  45.             try{
  46.                 FileOutputStream fos = new FileOutputStream(this.init);
  47.                 props.store(fos,"netkiller (netkiller@9812.net) http://www.9812.net");
  48.                 fos.close();
  49.         }
  50.                 catch(java.io.FileNotFoundException e){
  51.                         System.out.println(e.toString());
  52.                 }
  53.                 catch(IOException e){
  54.                         System.out.println(e.toString());
  55.                 }               
  56.         }
  57.         public boolean createNewFile(String filename){
  58.                 boolean isSuccessful = false;
  59.             try{
  60.                 File file = new File(filename);
  61.                 file.createNewFile();
  62.                 isSuccessful = true;
  63.         }
  64.                 catch(Exception e){
  65.                         System.err.println(e.toString());
  66.                 }
  67.                 return isSuccessful;
  68.         }       
  69.         public static void main(String[] args) {

  70.                 //Initializers test = new Initializers();
  71.                
  72.                 Properties props = new Properties();
  73.                 //System.out.println(test.getProperty("name"));
  74.         
  75.             try{
  76.                         // You can also load properties from a file
  77.                 FileInputStream fis = new FileInputStream("netkiller.properties");
  78.                 props.load(fis);
  79.                         // getProperty will return the value if found, otherwise null
  80.                         //System.out.println(props.getProperty("db.user"));
  81.                                 // getProperty will return the value if found, otherwise "none"
  82.                         //System.out.println(props.getProperty("db.password", "none"));
  83.                         Enumeration enum = props.propertyNames();
  84.                         while(enum.hasMoreElements()){
  85.                                 String key = (String)enum.nextElement();
  86.                                 String value = props.getProperty(key);
  87.                                 System.out.println(key+":"+value);
  88.                               }
  89.                 fis.close();

  90.                 FileOutputStream fos = new FileOutputStream("netkiller.properties");
  91.                 props.remove("db.user");
  92.                 props.remove("db.password");
  93.             //props.put("db.user", "jack");
  94.                 //props.put("db.password", "opendoor");
  95.                 props.setProperty("card", "http://192.168.0.1:8080/gomine/includes/company.jsp?uid=");
  96.                 props.setProperty("home", "http://192.168.0.1:8080/gomine/");
  97.                 props.setProperty("email", "webmaster@gomine.com");
  98.                 props.setProperty("tel", "");
  99.                 props.setProperty("fax", "");
  100.                 
  101.                 //props.save(fos,"header");
  102.                 props.store(fos,"netkiller (陈景峰) http://www.9812.net");
  103.                 fos.close();

  104.         }
  105.                 catch(java.io.FileNotFoundException e){
  106.                         System.out.println(e.toString());
  107.                 }
  108.                 catch(IOException e){
  109.                         System.out.println(e.toString());
  110.                 }
  111.         
  112.         }       
  113. }

复制代码


  1. 3,要考虑不同平台.所邮件系统.
  2. 同时支持postfix,qmail....
  3. 4, 备份,恢复方案
  4. 5,可以使用插件技术.这样更容易扩展.
  5. 6,开发注意写文档.并定义标准API.如

  6. getMailSubject()
  7. getMailFrom()
  8. getMailTo()
  9. ....
  10. 不再举例..
  11. 总之.可以让你的用户调用你的API二次开发你的系统.

  12. 7,其它等想出来再给你说,哈哈:)
复制代码


开发webmail  基本就是3种实现方式,
1,读取物理磁盘文件,就是maildir
2, 使用pop/imap socket 实现
3,使用其它API[/quote]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP