本帖最后由 cart55free99 于 2010-12-28 22:15:26 编辑

解决方案 »

  1.   

    去看看POP3协议和IMAP协议吧POP3协议是没办法知道该邮件是否已读
    IMAP协议可以知道
      

  2.   

    一般使用pop3协议 或者 pop协议进行处理
      

  3.   

    这是一个发送邮件的例子,需要javamail的jar包支持,可以网上去找下,这个可以用自己的邮箱去给自己发邮件,我用我公司的邮箱做过测试package com.test.appdemo;import java.io.UnsupportedEncodingException;
    import java.util.Properties;import javax.mail.Address;
    import javax.mail.Message;
    import javax.mail.MessagingException;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;public class JavaMailTest { /**
     * @param args
     */
    public static void main(String[] args) {
    String host = "mail.XXX.com";
    String username = "[email protected]";
    String password = "XXX";
    String from = "[email protected]";
    Properties props = new Properties();
    Session session = Session.getInstance(props, null);
    session.setDebug(true);
    MimeMessage mimeMessage = new MimeMessage(session);
    try {
    mimeMessage.setSubject("Java Mail Test");
    mimeMessage.setText("This is a java mail test.");
    Address address = new InternetAddress(from, "XXX");
    mimeMessage.setFrom(address);
    mimeMessage.addRecipient(Message.RecipientType.TO, address);
    mimeMessage.saveChanges();
    Transport transport = session.getTransport("smtp");
    transport.connect(host, username, password);
    transport.sendMessage(mimeMessage, mimeMessage.getAllRecipients());
    transport.close();
    } catch (MessagingException e) {
    e.printStackTrace();
    } catch (UnsupportedEncodingException e) {
    e.printStackTrace();
    }
    }}
      

  4.   

    javamail是没有任何邮件服务器功能的,它其实就是收发邮件的客户端,类似OUTLOOK
    如果要开发邮件服务器就用James,参考http://www.open-open.com/open26736.htm
      

  5.   

    大部分都会错意啦, 我说的是自己做一个 服务器,(老师要求做的是一个局域网的 邮箱服务系统) 然后 Outlook 可以访问这个服务器, 
     此时 服务器再 调用方法, 从我自己的数据库中取出数据, 返回给 Outlook。我照着协议弄, 一句话都输出不了啊@!
      

  6.   

    总算输出了一句话 AUTH 这是什么意思? 文档上根本没有这个AUTH啊!
      

  7.   

    曾经邮件服务器的开发很赚钱,如丁磊就是做邮件服务发家的。比较有意义的项目时将邮件内容发布成bbs的帖子。办公自动化项目(OA)都要附带发送邮件的功能,如发送通知等。许多网站项目也都需要附带发送邮件的功能,如:给新注册的用户自动发送一封包含其注册信息的欢迎E-Mail、给过生日的注册会员自动发送一封表示祝贺的E-Mail、将网站的最新活动信息通过E-Mail发送给所有的注册会员。 主要分为:发送与接收邮件、创建与解析邮件内容。邮件服务器主要提供以下功能:(1)接收用户投递的邮件;(2)将用户投递进来的邮件转发给目标邮件服务器;(3)接收其他邮件服务器转发来的邮件并把邮件存储到其管理的用户邮中;(4)为前来读取邮件的用户提供读取服务。邮件服务器按通讯协议可以划分为:(1)SMTP服务器。用于替用户发送邮件和接收外面发送给本地用户的邮件。(2)POP3/IMAP服务器。用于帮助用户读取SMTP服务器接收进来的该用户的邮件。
    先给你个思路,我也需要慢慢研究,这个问题很有研究价值啊,我会每天更新下学习情况,希望能给你带来些启发,你的学习知识点也希望能发上来,大家一起研究下。
      

  8.   

    我会在我的blog上持续更新我开发javamail的新内容,有些东西就不在论坛里面发了(图片实在太多了= =!)
    http://blog.csdn.net/py330316117/archive/2010/12/30/6107633.aspx
      

  9.   

    新文章地址http://blog.csdn.net/py330316117/archive/2010/12/31/6109608.aspx以前那个让我误删了。。
      

  10.   

    今天更新了下利用免费smtp服务器发送邮件的工作原理,可以去我的blog看看。
    http://blog.csdn.net/py330316117/archive/2010/12/31/6109608.aspx
      

  11.   

    谢谢楼上各位, 原理是基本上明白了, 但是出现了很多不一样的东西, 调试老半天了。。Outlook 会给我这么一个信息 UIDL  但是搜索很久, 似乎没有人有这个信息呀,之后的 LIST 都接收不到了,再读客户端传来的数据 都是 “”  也就就是什么都没有了。
      

  12.   

    暂时先更新到javamail的介绍,连接gmail的稍微有点困难,我还会继续更新的。
      

  13.   

    今天更新了发送邮件的java类。经试验是成功的,我会陆续更新邮件服务器等功能的类。
    http://blog.csdn.net/py330316117/archive/2010/12/31/6109608.aspx
      

  14.   


    我知道你问的是服务器的开发,我从最底层的研究可以更好的理解java mail的开发,服务器的开发我会再以后几天更新。下面是“渔”:http://blog.csdn.net/py330316117/archive/2011/01/03/6114086.aspx
    适合所有项目开发(自学文档)。
      

  15.   

    大家去看看我另一个帖子啊, 都没有人回复http://topic.csdn.net/u/20110101/23/c4ec857b-8bf6-43d7-b610-305c4daaf329.html?0792227062176031
      

  16.   

    不好意思啊,2天没有更新,让linux给我闹的,装个mysql我用了3天,这几天没怎么更新java mail啊!别着急从明天就开始全力解决它。
      

  17.   

    1.在javamail编写之前需要构建一个本地的邮件服务器系统。下载hMailServer进行安装。
    设置自己的e-mail地址。(这里安装之后就让你自选一个database了,也就是说邮件发来了自动存在database中(至于怎么存储的你不需要知道),也就是说java邮件编程需要做的不是构建你所说的服务器,因为服务器都是用别的语言编的,我们直接拿过来用,我们只需要编写像outlook这样的客户端或者是网页邮箱那种(大多数公司是编写网页,然后在后台服务器上安装一个邮件服务器,设置好他的smtp和pop3协议)。)
    2.邮件发送客户端。smtp协议。
    3.接收邮件端。pop3和imap协议。你的问题也主要是在这个地方。
    javamail api 中定义了客户端接收和处理邮件的类,主要应用的类有store类和folder类。store类实现特定邮件协议上的读、写、监视、查找等操作,floder类是用于分级组织和管理电子邮件的,并且floder类提供了按照java.mail.Message的格式访问电子邮件的能力。通过floder类完成对邮件服务器中电子邮件的其他管理操作,例如:通过GetMessageCount()方法显示邮箱中总共有多少封信;通过getNewMessageCount()显示邮箱中新邮件的封数;通过getUnreadMessageCount()显示邮箱中已读邮件的封数等
      

  18.   

    最后回答下楼主最开始问的问题:outlook 如何从自己的写的服务器接收邮件?
    我说了这么多你就该知道了,你的问题本身就有问题,我们接收邮件不是用的服务器,而是客户端,服务器接收邮件唯一做的就是把它存到数据库中,然后服务器为我们提供smtp协议(发送邮件),pop3协议(接收邮件),这些都是客户端做的。我要说的是我们什么都不用编写,只要把hMailServer设置好,自己设定个smtp地址,就能把自己的电脑编程smtp服务器,outlook只要像访问其他邮箱一样访问这个地址就能接受邮件了。所以我得出一个结论,你们老师让你写的是一个类似outlook的客户端,然后这个客户端再发展就是一个网络邮箱。outlook客户端你可以参考我的博客就知道如何写了。网络邮箱的我有个企业开发的全代码文件包,如果你想要就把e-mail地址留给我吧!(可以用你自己写的发送邮件的程序给我啊!!哈哈!!)
      

  19.   

    自己写一个邮件服务器, Outlook 能够向其中发送邮件,还可以从中间取邮件?想找这样的代码很久了,希望lz能提供点代码我参考参考