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;
}
相关文章
- Javascript在chrome中辅助预订火车票的方法 2012-01-06
- 一款不错的日历控件 2008-07-31
- getElementsByClassName 2008-07-21
- Javascript常用函数归档 2008-12-01
- JS和VML画曲线图 2008-07-06
- 最多500字的邮件,Shortmail.com发布iPhone应用 2011-11-17