import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
import java.io.*;public class Mail {
    private MimeMessage mimeMsg; //MIME邮件物件
    private Session session; //邮件会话物件
    private Properties props; //系統屬性
    private boolean needAuth = false; //smtp是否需要認證
    private String username = "hezuo"; //smtp認證用戶名和密碼
    private String password = "82334488";
    private Multipart mp; //Multipart物件,郵件內容,標題,附件等內容均添加到其中後再生成MimeMessage物件
    private String mailTitle = " 测试邮件";      //邮件标题
    private String mailContent = "这是邮件正文";  //邮件正文
    public Mail() {
        setSmtpHost("bjmail.kingsoft.com"); //指定郵件伺服器
        createMimeMessage();
    }    public Mail(String smtp) {
        setSmtpHost(smtp);
        createMimeMessage();
    }    /**
     * @param hostName String
     */
    public void setSmtpHost(String hostName) {
        //System.out.println("設置系統屬性:mail.smtp.host = "+hostName);
        if (props == null) {
            props = System.getProperties(); //獲得系統屬性物件        }
        props.put("mail.smtp.host", hostName); //設置SMTP主機
        props.put("mail.smtp.auth", "true"); //设置身份认证为false
    }    /**
     * @return boolean
     */
    public boolean createMimeMessage() {
        try {
            System.out.println("準備獲取郵件會話對象!");
            session = Session.getDefaultInstance(props, null); //獲得郵件會話對象
        } catch (Exception e) {
            System.err.println("獲取郵件會話物件時發生錯誤!" + e);
            return false;
        }
        System.out.println("準備創建MIME郵件對象!");
        try {
            mimeMsg = new MimeMessage(session); //創建MIME郵件物件
            mp = new MimeMultipart();            return true;
        } catch (Exception e) {
            System.err.println("創建MIME郵件物件失敗!" + e);
            return false;
        }    }    public boolean setMail(String from, String to) {        try {
            mimeMsg.setSubject( "测试主题","GBK"); //主题
            mimeMsg.setFrom(new InternetAddress(from)); //发信人
            BodyPart bp = new MimeBodyPart();
            bp.setText("正文");
            mp.addBodyPart(bp);            //bp.setContent("<meta http-equiv=Content-Type content=text/html; charset=gb2312>"+"邮件正文","text/html;charset=GB2312");
            //mp.addBodyPart(bp);
            bp = new MimeBodyPart();
            FileDataSource fileds = new FileDataSource("c:\\test.txt");
            bp.setDataHandler(new DataHandler(fileds));            bp.setFileName(fileds.getName()); //附件            mp.addBodyPart(bp);
            mimeMsg.setRecipients(Message.RecipientType.TO,
                                  InternetAddress.parse(to));
            mimeMsg.setContent(mp);
            mimeMsg.saveChanges();
            return true;        } catch (Exception e) {
            System.err.println("邮件设置失败!" + e);
            return false;
        }
    }    public boolean sendout() {
        try {
            Session mailSession = Session.getInstance(props, null);
            Transport transport = mailSession.getTransport("smtp");
            transport.connect( (String) props.get("mail.smtp.host"), username,
                              password);
            transport.sendMessage(mimeMsg,mimeMsg.getRecipients(Message.RecipientType.TO));
            transport.close();            return true;
        } catch (Exception e) {
            System.err.println("郵件發送失敗!" + e);
            return false;
        }    }}