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