java 发送邮件的简单例子

package com.jinfonet.KB;

import java.util.Properties;

import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;

import com.sun.mail.smtp.SMTPMessage;

public class MailSender {

    protected ParametersManager pm = ParametersManager.getInstance();

    public void sendToUser(String email, String content) {
        Properties mailProp = new Properties();
        try {
            mailProp
                    .setProperty(“mail.smtp.host”, pm.getItem(“mail.user.host”));
            mailProp
                    .setProperty(“mail.smtp.port”, pm.getItem(“mail.user.port”));

            Session session = Session.getDefaultInstance(mailProp);

            SMTPMessage mail = new SMTPMessage(session);
            InternetAddress from = new InternetAddress(pm
                    .getItem(“mail.user.sender”));
            mail.setFrom(from);

            InternetAddress[] receiver = new InternetAddress[1];
            receiver[0] = new InternetAddress(email);
            mail.setRecipients(javax.mail.Message.RecipientType.TO, receiver);

            mail.setSubject(pm.getItem(“mail.user.subject”));
            mail.setContent(content, “text/html;charset=UTF-8”);

            Transport.send(mail);

        } catch (MessagingException me) {
            System.out.println(me.toString());
            me.printStackTrace();
        } catch (Exception e) {
            System.out.println(e.toString());
            e.printStackTrace();
        }
    }

    public void sendToProductOwner(String content, String sender) {

        Properties mailProp = new Properties();
        try {
            mailProp.setProperty(“mail.smtp.host”, pm
                    .getItem(“mail.owner.host”));
            mailProp.setProperty(“mail.smtp.port”, pm
                    .getItem(“mail.owner.port”));

            Session session = Session.getDefaultInstance(mailProp);

            SMTPMessage mail = new SMTPMessage(session);
            InternetAddress from = null;
            if (sender == null) {
                from = new InternetAddress(pm.getItem(“mail.owner.sender”));
            } else {
                from = new InternetAddress(sender);
            }

            String[] rece = pm.getItem(“mail.owner.receiver”).split(“,”);
            InternetAddress[] to = new InternetAddress[rece.length];
            for (int i = 0; i < rece.length; i++) {
                to[i] = new InternetAddress((String) rece[i]);
            }

            mail.setFrom(from);

            mail.setRecipients(javax.mail.Message.RecipientType.TO, to);

            mail.setSubject(pm.getItem(“mail.owner.subject”));
            mail.setContent(content, “text/html;charset=UTF-8”);

            Transport.send(mail);
        } catch (MessagingException me) {
            System.out.println(me.toString());
            me.printStackTrace();
        } catch (Exception e) {
            System.out.println(e.toString());
            e.printStackTrace();
        }
    }

    public static void main(String s[]) {
        MailSender ms = new MailSender();
        ms.sendToProductOwner(“hello”, null);
        ms = null;
    }

}



package com.jinfonet.KB;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URL;
import java.net.URLDecoder;
import java.util.Properties;

public class ParametersManager {
    private static String PFILE = null;

    private File file = null;

    private long lastModifiedTime = 0;

    private Properties props = null;

    private static ParametersManager instance = new ParametersManager();

    private ParametersManager() {

        URL url = this.getClass().getResource(“config.properties”);

        if (url != null) {
            try {
                String path = URLDecoder.decode(url.getPath(), “UTF-8”);
                /
                
For Unix FileSystem is file:/path For Windows FileSystem is
                 file:/X:/path or file:/d:/path
                
/
                if ((path.length() >= 3) && (path.charAt(0) == ‘/‘)
                        && (path.charAt(2) == ‘:’)) {
                    path = path.substring(1);
                }
                PFILE = path.replace(‘/‘, File.separatorChar);
            } catch (UnsupportedEncodingException ex) {
                System.out.println(ex.toString());
            }
        }
        file = new File(PFILE);

        lastModifiedTime = file.lastModified();
        if (lastModifiedTime == 0) {
            System.out.println(PFILE + “ File does not exist!”);
        }
        props = new Properties();
        try {
            props.load(new FileInputStream(PFILE));
        } catch (FileNotFoundException ex) {
            System.out.println(ex.toString());
        } catch (IOException e) {
            System.out.println(e.toString());
        }
    }

    / return signal Instance /
    synchronized public static ParametersManager getInstance() {
        return instance;
    }

    public String getItem(String key) {
        long newTime = file.lastModified();
        if (newTime > lastModifiedTime) {
            props.clear();
            try {
                props.load(new FileInputStream(PFILE));
            } catch (IOException e) {
                System.out.println(e.toString());
            }
        }
        lastModifiedTime = newTime;
        return props.getProperty(key);
    }

    public void setItem(String key, String value) {
        String Header = “paramers of jinfonet customers self-service center”;
        try {
            props.setProperty(key, value);
            props.store(new FileOutputStream(PFILE), Header);
        } catch (IOException e) {
            System.out.println(e.toString());
        }
    }
}




config.properties

mail.owner.port=25
mail.owner.sender=JReportCustomerCarePortal
mail.owner.receiver=liyuan.li@china.jinfonet.com
mail.owner.host=192.168.128.4
mail.owner.subject=Jinfonet Technical Support