谁有程序给一份吧,谢谢

解决方案 »

  1.   

    Jmail不会用啊,还要下相关的组件才可以用吗
      

  2.   

       现在是jmail1.4吧  你可以看看张孝祥的java邮件开发啊
        
      

  3.   

    LZ  你是不是要实现 Java发邮件啊 是的话我给你发一份,我项目中正好用到了这个功能(是的话给我E-mail:[email protected],我发给你);
      

  4.   

    张孝祥的JAVAMAIL开发我看过,里面主要讲的是发邮件给其他服务器,也就是说那里面讲的是做客户端而不是服务器!我现在正在实训,上个月刚做了一个邮件服务器,但只能内发,外发发不出去,因为像163,qq这样的大公司检测非常严格,你如果没有自己的域名的话是通不过人家的DNS域名解析认证的,也就无法通过你的邮件服务器向163,新浪,QQ发邮件。做项目讲究的思路,最好不要直接看别人的代码,那不叫做项目,那叫抄项目。在这里简单说一下思路吧,先说smtp服务器,全球认定的通用端口是25,首先建一个ServerSocket类ss用于接收客户端连接,然后定义一个Socket s=ss.accept;定义一个BufferedReader br用来读s.getInputStream(),即接收客户端发来的信息,另外定义一个PrintStream ps=new PrintStream(s.getOutputStream());用来向客户端发送信息。你看过SMTP和POP3这两个协议了么?如果你想做的是不需要验证的,这个时候客户端会发给你“HELO ***”(***为你的计算机名),你通过br来读取客户端发来的信息,然后用ps返回“250”,即连接就绪,然后它会给你发mail from: <>(<>内为发送者的邮箱),然后你返回“250 OK”……就这么一回的返回信息,另外你要定义一个类,比如说是MailMessage用来存储邮件信息,其中需要String变量from,即发件人,String变量to,收件人;StringBuffer变量body,即邮件内容,因为你不知道发件人会发多少内容,所以用StringBuffer这个变长数组来接收邮件内容,当客户端发来mail from: <>后,你通过setFrom()方法将发件人保存到from变量中,以此类推
      

  5.   

    然后是存储邮件了,你看你的电脑上新建一个文件夹用来放邮件,然后里面再根据用户名建立不同的文件夹,假如你要用123向456发信息的话,你就要再你的文件夹下建立一个名为456的文件夹,客户端向你发送rcpt tp: <456@***.com>命令后,你用String类中的一些方法将用户名,即456截取出来,通过这个收件人的名字定为到你电脑上的456文件夹,然后通过代码建一个用来储存邮件的文件,通常已发信时的时间作为文件名,后缀名是.eml,然后通过IO流将邮件内容,即上面的body写到文件中
      

  6.   

    对了,还有最重要一点,一定要强壮自己的代码,完善自己代码的纠错能力,前几天,我用telnet连接到163的邮件服务器,故意输入错误的命令,结果163的服务器居然什么信息都不返回,即使我输入了断开连接的quit命令,163的邮件服务器依旧什么信息都不返回,甚至有时候会返回“-ERR Unknow command”,即把quit当成了错误的命令