如题。最好有详细注释。可以使用的例子。

解决方案 »

  1.   

    我找到的老是报错
    Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/SharedByteArrayInputStream
    at com.together.sys.util.sendMail.sendMail(sendMail.java:200)
    at com.together.sys.util.sendMail.main(sendMail.java:263)
      

  2.   

    package com.together.sys.util;
    import java.util.*;
    import javax.mail.*;
    import javax.mail.internet.*;
    public class sendMail
    {    public sendMail()
        {
        }
        public void send(){
            try
            {
                Properties props = new Properties();
                Session sendMailSession;
                Store store;
                Transport transport;
                props.put("mail.smtp.auth","true");
                props.put("mail.smtp.host", "smtp.126.com"); //smtp主机名。
                props.put("mail.smtp.user","[email protected]"); //发送方邮件地址。
                props.put("mail.smtp.password","shanjaysdl"); //邮件密码。
                PopupAuthenticator popA=new PopupAuthenticator();//邮件安全认证。
                PasswordAuthentication pop = popA.performCheck("123","123"); //填写用户名及密码
                sendMailSession = Session.getInstance(props, popA);
                Message newMessage = new MimeMessage(sendMailSession);
                newMessage.setFrom(new InternetAddress("[email protected]"));
                newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]"));  //接收方邮件地址
                newMessage.setSubject("邮件主题");
                newMessage.setSentDate(new Date());
                String mailContent;
                mailContent="你好!\n\n";
                mailContent+="\t邮件正文\n\n";
                mailContent+=new Date().toLocaleString();
                newMessage.setText(mailContent); //邮件正文
                transport = sendMailSession.getTransport("smtp");
                transport.sendMessage(newMessage,newMessage.getAllRecipients());
            }
            catch (MessagingException ex)
            {
                ex.printStackTrace();
            }
        }
        public static void main(String[] args)
        {
            sendMail sml = new sendMail();
            sml.send();
        }    public class PopupAuthenticator extends Authenticator{
            String username=null;
            String password=null;
            public PopupAuthenticator(){}
            public PasswordAuthentication performCheck(String user,String pass){
                username = user;
                password = pass;
                return getPasswordAuthentication();
            }
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(username, password);
            }    }
    }我是这样写的 
    Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/SharedByteArrayInputStream
    at com.together.sys.util.sendMail.send(sendMail.java:35)
    at com.together.sys.util.sendMail.main(sendMail.java:56)
    他老是报出这个异常怎么解决啊。
      

  3.   

    你classpath 没有mail.jar 包!
      

  4.   

    只要加入mail.jar这一个jar文件吗?
    我加入了啊。还是报刚才的错误。
      

  5.   

    JavaMail主要依赖于两个包, 一般来说, 依赖于JavaMail和JAF.其实你只要加入J2EE.jar就可以了.
      

  6.   

    javamail的SharedByteArrayInputStream位置是javax.mail.util.SharedByteArrayInputStream
    报错信息表明,其他的jar包含了com.sun.mail.util.SharedByteArrayInputStream,以此无法匹配
    找到这个jar,删除就ok了,例如,weblogic自带的weblogic.jar就包含了这个类
      

  7.   

    如果有J2EE.jar,可能就是它引起的,删除试试
      

  8.   

    谢谢大家。我把mail.jar和activation.jar都加入到lib里面了。
    可以又报了一个错误。Exception in thread "main" java.lang.NoSuchMethodError: com.sun.activation.registries.MailcapFile: method getMailcapList(Ljava/lang/String;)Ljava/util/Hashtable; not found
    at javax.activation.MailcapCommandMap.createDataContentHandler(MailcapCommandMap.java:471)
    at javax.activation.DataHandler.getDataContentHandler(DataHandler.java:567)
    at javax.activation.DataHandler.writeTo(DataHandler.java:294)
    at javax.mail.internet.MimeUtility.getEncoding(MimeUtility.java:230)
    at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1065)
    at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:1923)
    at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:1904)
    at javax.mail.Transport.send(Transport.java:79)
    at com.together.sys.util.SendMail.send(SendMail.java:47)
    at com.together.sys.util.SendMail.main(SendMail.java:57)
    高手帮忙看下。
      

  9.   

    还需要 activation.jar 哦!
      

  10.   

    加了啊。
    54.9 KB (56,290 字节)
    jaf-1_1_1.zip
    javamail-1_3_1-upd.zip
      

  11.   

    这问题太不常见了!你使用JDK的版本是多少〉换JDK 5.0 看看吧!
      

  12.   

    现在的代码是这样的。
    package com.together.sys.util;
    import java.util.*;
    import javax.mail.*;
    import javax.mail.internet.*;
    public class SendMail
    {    public SendMail()
        {
        }
        public void send(){
            try
            {
                Properties props = System.getProperties();
                Session sendMailSession;
                props.put("mail.smtp.auth","true");
                props.put("mail.smtp.host", "smtp.126.com"); //smtp主机名。
                props.put("mail.smtp.user","[email protected]"); //发送方邮件地址。
                props.put("mail.smtp.password","shanjaysdl"); //邮件密码。
                PopupAuthenticator popA=new PopupAuthenticator();//邮件安全认证。
                PasswordAuthentication pop = popA.performCheck("tramplesoul","shanjaysdl"); //填写用户名及密码
                sendMailSession = Session.getInstance(props, popA);
                Message newMessage = new MimeMessage(sendMailSession);
                newMessage.setFrom(new InternetAddress("[email protected]"));
                newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]"));  //接收方邮件地址
                newMessage.setSubject("邮件主题");
                newMessage.setSentDate(new Date());
                String mailContent;
                newMessage.setText("哈哈。我是正文"); //邮件正文
                Transport.send(newMessage);
            }
            catch (MessagingException ex)
            {
                ex.printStackTrace();
            }
        }
        public static void main(String[] args)
        {
            SendMail sml = new SendMail();
            sml.send();
        }    public class PopupAuthenticator extends Authenticator{
            String username=null;
            String password=null;
            public PopupAuthenticator(){}
            public PasswordAuthentication performCheck(String user,String pass){
                username = user;
                password = pass;
                return getPasswordAuthentication();
            }
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(username, password);
            }    }
    }
    但是报异常。
    Exception in thread "main" java.lang.NoSuchMethodError: com.sun.activation.registries.MailcapFile: method getMailcapList(Ljava/lang/String;)Ljava/util/Hashtable; not found
    at javax.activation.MailcapCommandMap.createDataContentHandler(MailcapCommandMap.java:471)
    at javax.activation.DataHandler.getDataContentHandler(DataHandler.java:567)
    at javax.activation.DataHandler.writeTo(DataHandler.java:294)
    at javax.mail.internet.MimeUtility.getEncoding(MimeUtility.java:230)
    at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1065)
    at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:1923)
    at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:1904)
    at javax.mail.Transport.send(Transport.java:79)
    at com.together.sys.util.SendMail.send(SendMail.java:32)
    at com.together.sys.util.SendMail.main(SendMail.java:42)
    两个包我都加过了。难道是我程序写的有问题。还是什么原因。
    高手帮看看撒。
      

  13.   

    我用你的程序发了一封邮件给你,你收到了吗?
    [email protected]
      

  14.   

    我一直用的一段代码,也是从网上找的,我精简并完善了一下.http://www.java2000.net/viewthread.jsp?tid=177
      

  15.   

    我看了一下没有重复的啊。你的.jar文件用的都上什么版本的啊。
    我用mail.jar 1.4.1就会报
    Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/SharedByteArrayInputStream
    at com.together.sys.util.SendMail.send(SendMail.java:25)
    at com.together.sys.util.SendMail.main(SendMail.java:42)
    异常。用1.3.1就不会报这个异常。jaf-1.1.1
    项目里面没有重复的了。我重新创建个项目试试下。