直接在控制台打印输出即可,注明是否要设置代理服务器

解决方案 »

  1.   

    ------------------------EmailAuthenticator.java---------------------
    package com.xxx.helper.javamail;import javax.mail.Authenticator;
    import javax.mail.PasswordAuthentication;
    public class EmailAuthenticator extends javax.mail.Authenticator
    {
        private String userName = null;
        private String password = null;    public void setUserName(String aUserName)
        {
            this.userName = aUserName;
        }    public void setPassword(String aPassword)
        {
            this.password = aPassword;
        }    public EmailAuthenticator()
        {
            super();
        }    public EmailAuthenticator(String aUserName, String aPassword)
        {
            super();
            setUserName(aUserName);
            setPassword(aPassword);
        }    //一定要有这个方法,它是在需要身份验证时自动被调用的
        public PasswordAuthentication getPasswordAuthentication()
        {
            return new PasswordAuthentication(this.userName, this.password);
        }
    }
    ------------------------------------EmailSender.java-----------------------------------
    package com.apsoft.helper.javamail;import javax.mail.Authenticator;
    import javax.mail.Message;
    import javax.mail.MessagingException;
    import javax.mail.Session;
    import javax.mail.SendFailedException;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    import javax.mail.internet.MimeBodyPart;
    import javax.mail.internet.MimeMultipart;
    import javax.mail.internet.MimeUtility;
    import javax.activation.FileDataSource;
    import javax.activation.DataHandler;
    import java.util.Date;
    import java.util.Properties;
    import java.io.File;
    import java.io.UnsupportedEncodingException;
    public class EmailSender
    {
        private Session session = null;    private String mailFrom = null;
        private String mailTo = null;
        private String mailCc = null;
        private String mailBcc = null;    private String subject = null;
        private String content = null;    private String attachFile = null;    private String mailHost = null;
        private String userName = null;
        private String password = null;
        public EmailSender(String mailHost)
        {
            Properties prop = new Properties();
            prop.put("mail.transport.protocol", "smtp");
            prop.put("mail.smtp.host", mailHost);        this.session = Session.getDefaultInstance(prop, null);
        }    public EmailSender(String mailHost, String userName, String password)
        {
            Properties prop = new Properties();
            prop.put("mail.transport.protocol", "smtp");
            prop.put("mail.smtp.host", mailHost);
            prop.put("mail.smtp.auth", "true");        this.session = Session.getInstance(prop,
                                        new EmailAuthenticator(userName, password));
    //        this.session.setDebug(true);
        }    public EmailSender(String mailHost, String proxyHost, int proxyPort)
        {
            Properties prop = new Properties();
            prop.put("http.proxySet", "true" );
            prop.put("http.proxyHost", proxyHost);
            prop.put("http.proxyPort", String.valueOf(proxyPort));
            prop.put("mail.transport.protocol", "smtp");
            prop.put("mail.smtp.host", mailHost);
            this.session = Session.getDefaultInstance(prop, null);
        }    public EmailSender(String mailHost, String userName, String password,
                            String proxyHost, int proxyPort)
        {
            Properties prop = new Properties();
            prop.put("http.proxySet", "true" );
            prop.put("http.proxyHost", proxyHost);
            prop.put("http.proxyPort", String.valueOf(proxyPort));
            prop.put("mail.transport.protocol", "smtp");
            prop.put("mail.smtp.host", mailHost);
            prop.put("mail.smtp.auth", "true");        this.session = Session.getDefaultInstance(prop,
                                    new EmailAuthenticator(userName, password));
        }
        public void sendSimpleMail() throws MessagingException,SendFailedException
        {
            if(this.mailFrom == null)
            {
                throw new RuntimeException("NO MAIL FROM");
            }
            if(this.mailTo == null)
            {
                throw new RuntimeException("NO MAIL TO");
            }        MimeMessage mimeMsg = new MimeMessage(this.session);        mimeMsg.setFrom(new InternetAddress(mailFrom) );
            mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(mailTo) );        if(mailCc != null)
            {
                mimeMsg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(mailCc) );
            }        if(mailBcc != null)
            {
                mimeMsg.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(mailBcc) );
            }        mimeMsg.setSubject(subject,"GBK");
            mimeMsg.setText(content ,"GBK" );
            mimeMsg.setSentDate(new Date());        Transport.send(mimeMsg);
        }
        //带附件
        public void sendMultiPartMail()
                throws MessagingException,SendFailedException,UnsupportedEncodingException
        {
            if(this.mailFrom == null)
            {
                throw new RuntimeException("NO MAIL FROM");
            }
            if(this.mailTo == null)
            {
                throw new RuntimeException("NO MAIL TO");
            }
            if(this.attachFile == null)
            {
                throw new RuntimeException("NO MAIL TO");
            }
            File file = new File(attachFile);
            if(!file.canRead())
            {
                throw new RuntimeException("Can't find the attached file!");
            }        MimeMessage mimeMsg = new MimeMessage(this.session);        mimeMsg.setFrom(new InternetAddress(mailFrom) );
            mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(mailTo) );        if(mailCc != null)
            {
                mimeMsg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(mailCc) );
            }        if(mailBcc != null)
            {
                mimeMsg.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(mailBcc) );
            }        mimeMsg.setSubject(subject,"GBK");        MimeBodyPart mbp1 = new MimeBodyPart();
            mbp1.setText(content, "GBK");        MimeBodyPart mbp2 = new MimeBodyPart();
            FileDataSource fds = new FileDataSource(this.attachFile);
            mbp2.setDataHandler(new DataHandler(fds));
            mbp2.setFileName(MimeUtility.encodeWord(fds.getName()));        MimeMultipart mp = new MimeMultipart();
            mp.addBodyPart(mbp1);
            mp.addBodyPart(mbp2);        mimeMsg.setContent(mp);        mimeMsg.setSentDate(new Date());        Transport.send(mimeMsg);    }    public void setMailFrom(String mailFrom)
        {
            this.mailFrom = mailFrom;
        }    public void setMailTo(String mailTo)
        {
            this.mailTo = mailTo;
        }    public void setMailCc(String mailCc)
        {
            this.mailCc = mailCc;
        }    public void setMailBcc(String mailBcc)
        {
            this.mailBcc = mailBcc;
        }    public void setSubject(String subject)
        {
            this.subject = subject;
        }    public void setContent(String content)
        {
            this.content = content;
        }    public void setAttachFile(String attachFile)
        {
            this.attachFile = attachFile;
        }
    }
    -------------------------------------------------------------------------
      

  2.   

    ---------------TEST-----------------------------
    public static void main(String[] args)
    {
            try
            {
                EmailSender sender = new EmailSender("smtp.163.net", "username", "password");            sender.setMailFrom("[email protected]");
                sender.setMailTo("[email protected]");
                sender.setSubject("测试 java mail");
                sender.setContent("测试the content of the mail");
                sender.setAttachFile("D:\\test.txt");
                System.out.println("Sending email .....");
                sender.sendMultiPartMail();
                System.out.println("success!");
            }
            catch(Exception e)
            {
                 e.printStackTrace();
            }
    }
    ---------------------------------------------------------------------------
      

  3.   

    命令行输出:
    Sending email .....
    Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/SharedByteArrayInputStream
    at mail.EmailSender.sendMultiPartMail(EmailSender.java:157)
    at mail.EmailSender.main(EmailSender.java:240)什么原因?编译没有错误,jmail的包已经导入
      

  4.   

    问题解决,去了J2EE的包即可,不知道是否还有收邮件解析的程序