您的位置:首页 > 编程语言 > Java开发

使用java发送邮件sp自动发送邮件方法

2013-07-22 12:59 519 查看
注意:将jar包复制到web-info文件夹下lib:

activation.jar

mail.jar

//发送邮箱
public static String sendEmail(String sendFrom,String sendTo,String passWord,String title,String count){
try{

String from =sendFrom.trim();//发送者
String to =sendTo.trim();//接受者
String subject =title.trim();//主题
String content =count.trim();//内容
String password =passWord.trim();//发送者邮箱密码
String path="null";//附件的路径

String mailserver ="smtp."+from.substring(from.indexOf('@')+1,from.length()); //在Internet上发送邮件时的代码(smtp服务器地址)

Properties prop = new Properties();
prop.put("mail.smtp.host", mailserver);
prop.put("mail.smtp.auth", "true");
prop.put("mail.transport.protocol", "smtp");
Session sess = Session.getDefaultInstance(prop);
sess.setDebug(true);
MimeMessage message = new MimeMessage(sess);
message.setFrom(new InternetAddress(from)); // 给消息对象设置发件人
//设置收件人
String toArr[]=to.split(",");
InternetAddress[] to_mail=new InternetAddress[toArr.length];
for(int i=0;i<toArr.length;i++){
to_mail[i]=new InternetAddress(toArr[i]);
}
message.setRecipients(Message.RecipientType.BCC,to_mail);
//设置主题
message.setSubject(subject);
Multipart mul = new MimeMultipart(); // 新建一个MimeMultipart对象来存放多个BodyPart对象
BodyPart mdp = new MimeBodyPart(); // 新建一个存放信件内容的BodyPart对象
mdp.setContent(content, "text/html;charset=gb2312");
mul.addBodyPart(mdp); // 将含有信件内容的BodyPart加入到MimeMulitipart对象中

if(!"null".equals(path)){ //当存在附件时
// 设置信件的附件(用本机上的文件作为附件)
mdp = new MimeBodyPart(); // 新建一个存放附件的BodyPart
String adjunctname = new String(path.getBytes("GBK"), "ISO-8859-1"); // 此处需要转码,否则附件中包括中文时,将产生乱码
path = (System.getProperty("java.io.tmpdir") + "/" + path).replace(
"\\", "/");
System.out.println("路径:" + path);
FileDataSource fds = new FileDataSource(path);
DataHandler handler = new DataHandler(fds);
mdp.setFileName(adjunctname);
mdp.setDataHandler(handler);
mul.addBodyPart(mdp);
}

message.setContent(mul); // 把mul作为消息对象的内容
message.saveChanges();

Transport transport = sess.getTransport("smtp");
// 以smtp方式登录邮箱,第1个参数是发送邮件用的邮件服务器SMTP地址,第2个参数为用户名,第3个参数为密码

// qq邮箱POP3服务器(端口995)
// SMTP服务器(端口465或587)

transport.connect(mailserver,from,password);
transport.sendMessage(message, message.getAllRecipients());

transport.close();

return "success";

} catch (Exception e) {
e.printStackTrace();

return "error";
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: