2011/01/04
实现邮件发送功能:
1.Struts配置以及jar包导入
2.mail.jar,activation.jar导入(邮寄发送需要这两个jar)
3.创建EMAIL.properties文件存放参数文件
serverSend=smtp.126.com
serverReceive=smtp.qq.com
4.读取配置文件,实现发送邮件,代码:
public static void sendEmail(EmailBean eb){
try {
//String pash = System.getProperty("user.dir");
Properties p=new Properties();
FileInputStream in = new FileInputStream("D:/workspaces/Email/src/com/email/EMAIL.properties");
p.load(in);
serverSend = p.getProperty("serverSend");
serverReceive = p.getProperty("serverReceive");
userName = p.getProperty("userName");
userPass = p.getProperty("userPass");
sendEmail = p.getProperty("sendEmail");
String title = eb.getTitle();
String content = eb.getContent();
String filef = eb.getFilef();
String filenames[] = filef.split("\\\\");
String filename = filenames[filenames.length-1];
title = new String(title.getBytes("GBK"));
content = new String(content.getBytes("GBK"));
filename = new String(filename.getBytes("GBK"),"ISO-8859-1");
Properties props = new Properties();
props.put("mail.smtp.host",serverSend);//指定SMTP服务器
props.put("mail.smtp.auth","true");//指定是否需要SMTP验证
Session mailSession = Session.getDefaultInstance(props);
mailSession.setDebug(true);//是否在控制台显示debug信息
Message message=new MimeMessage(mailSession);
message.setFrom(new InternetAddress(sendEmail));//发件人
message.addRecipient(Message.RecipientType.TO,new InternetAddress(eb.getEmail()));//收件人
message.setSubject(title);//邮件主题
//message.setText(content);//邮件内容
MimeBodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText(content); //发送普通内容邮件
messageBodyPart.setDataHandler(new DataHandler("<hr><hr><table><tr><td>测试</td><td>111</td></tr></table>","text/html;charset=GBK")); //发送HTML格式邮件
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(filef);//附件地址
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(filename);//显示附件时显示的名字
multipart.addBodyPart(messageBodyPart);
message.setContent(multipart);
message.setSentDate(new Date());
message.saveChanges();
Transport transport = mailSession.getTransport("smtp");
transport.connect(serverSend,userName,userPass);
transport.sendMessage(message,message.getAllRecipients());
transport.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
EmailBean主要存放发送邮件地址,主题,内容,添加附件……
注意:附件名称显示中文乱码显示问题,要用new String(filename.getBytes("GBK"),"ISO-8859-1")进行转码……
发送HTML邮件和发送普通文本邮件不能共存……