java发送邮件,带附件

日期:2011-07-08    阅读:35   分类:Java资料


如下程序依赖的jar包为:
activation.jar, mail.jar


import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

import config.MailConfig;


public class MailService
{
    private static MailService instance = null;
   
    private MailService()
    {

    }
   
    public static MailService getInstance()
    {
        if(instance == null)
        {
            instance = new MailService();
        }
       
        return instance;
    }
   
    private void addAttachments(String[] fileNames, Multipart multiPart) throws MessagingException
    {
        if(fileNames == null || fileNames.length == 0)
        {
            return;
        }
       
        MimeBodyPart messageBodyPart = null;
        for(int i=0;i<fileNames.length;i++)
        {
            messageBodyPart = new MimeBodyPart();
            DataSource source = new FileDataSource(fileNames[i]);
            messageBodyPart.setDataHandler(new DataHandler(source));
            messageBodyPart.setFileName(fileNames[i]);
            multiPart.addBodyPart(messageBodyPart);
        }
    }

    public boolean send(String title, String content, String toEmail, MailConfig config)
    {
        return this.send(title, content, toEmail, config, null);
    }
   
    public boolean send(String title, String content, String toEmail, MailConfig config, String[] fileNames)
    {
        Transport transport = null;
        try
        {
            Properties pro = System.getProperties();
            pro.getProperty("");           
           
            String host = config.host;
            String from = config.from;
            String to = toEmail;
            String username = config.userName;
            String password = config.passWord;
           
           
            Properties props = new Properties();

            props.put("mail.smtp.host", host);
            props.put("mail.smtp.auth", "true");

            Session session = Session.getDefaultInstance(props);
            session.setDebug(false);

            MimeMessage message = new MimeMessage(session);
            message.setFrom(new InternetAddress(from));
            message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
            message.setSubject(title);
           
            Multipart multiPart = new MimeMultipart();
            MimeBodyPart messageBodyPart = new MimeBodyPart();
            messageBodyPart.setContent(content, "text/html;charset=utf-8");
            multiPart.addBodyPart(messageBodyPart);
           
            this.addAttachments(fileNames, multiPart);
           
            message.setContent(multiPart);
            message.saveChanges();
           
            transport = session.getTransport("smtp");
            transport.connect(host, username, password);
            transport.sendMessage(message, message.getAllRecipients());
           
        }
        catch (Exception e)
        {
            e.printStackTrace();
            return false;
        }
        finally
        {
            try {
                transport.close();
            } catch (MessagingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
       
        return true;
    }


本页链接: http://www.scriptlover.com/static/718-java-邮件-附件

标签:

相关文章

网友评论

Leave a comment

 required

 required (Not published)

 required