linux下可以安装很多email服务器,我推荐用qmail

解决方案 »

  1.   

    发送email的代码 ,这个代码是建立在你建立起邮件服务器的基础上的public static void sendMail(String [] to, String from, String host, String subject, String content,boolean debug)
        {
        //create some properties and get the default Session
        Properties props = new Properties();
        props.put("mail.smtp.host", host);
        if (debug) props.put("mail.debug",new Boolean(debug));     Session session = Session.getDefaultInstance(props, null);
        session.setDebug(debug);     try
        {
            // create a message
            Message msg = new MimeMessage(session);
            msg.setFrom(new InternetAddress(from));
            InternetAddress[] address = new InternetAddress[to.length];//{new InternetAddress(args[0])};
            for(int i=0;i<to.length;i++)
            {
             address[i] = new InternetAddress(to[i]);
            }
            msg.setRecipients(Message.RecipientType.TO, address);
            msg.setSubject(subject);
            msg.setSentDate(new Date());         // If the desired charset is known, you can use
            // setText(text, charset)
            msg.setText(content);         Transport.send(msg);
        }
        catch (MessagingException mex)
        {
            System.out.println("\n--Exception handling in msgsendsample.java");         mex.printStackTrace();
            System.out.println();
            Exception ex = mex;
            do
            {
            if (ex instanceof SendFailedException)
            {
                SendFailedException sfex = (SendFailedException)ex;
                Address[] invalid = sfex.getInvalidAddresses();
                if (invalid != null)
                {
                System.out.println("    ** Invalid Addresses");
                if(invalid != null)
                {
                    for (int i = 0; i < invalid.length; i++)
                    System.out.println("         " + invalid[i]);
                }
                }             Address[] validUnsent = sfex.getValidUnsentAddresses();             if (validUnsent != null)
                {
                System.out.println("    ** ValidUnsent Addresses");
                if (validUnsent != null)
                {
                    for (int i = 0; i < validUnsent.length; i++)
                    System.out.println("         "+validUnsent[i]);
                }
                }             Address[] validSent = sfex.getValidSentAddresses();
                if (validSent != null)
                {
                System.out.println("    ** ValidSent Addresses");
                if(validSent != null)
                {
                    for (int i = 0; i < validSent.length; i++)
                    System.out.println("         "+validSent[i]);
                }
                }
            }         System.out.println();
            if (ex instanceof MessagingException)
                ex = ((MessagingException)ex).getNextException();
            else
                ex = null;
            }while (ex != null);
        }
        }
       
        
    }
      

  2.   

    sendMail和qmail有很多差距,sendmail的帐户机制和qmail不一样,所以存储也不一样,sendmail把所有的用户的信都放在一起,qmail则把每个人都建立帐户。