package mail;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
public class SendMail {
public static boolean send(
String to,
String subject,
String messageText,
String cc,
String bcc,
boolean sessionDebug){
MailConfig mcfg=MailConfig.getInstance();
String host= mcfg.getSmtphost();
String from= mcfg.getFrom();
String username= mcfg.getMailUser();
String password= mcfg.getMailPassword();
boolean isSuccess=false;
//获得系统属性对象
Properties props=new Properties();
//设置SMTP主机
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
//确定接收方的邮件服务器主机,
//props.put("mail.host",host);
//设置邮件传输协议方式
//props.put("mail.transport.protocol","smtp");
//获取邮件会话对象
Session mailSession = Session.getDefaultInstance(props,null);
//sessionDebug=true mean "watch the mail commands go by to the mail server"
mailSession.setDebug(sessionDebug);
try{
// 创建MIME邮件对象
Message msg = new MimeMessage(mailSession);
// 设置发信人
msg.setFrom(new InternetAddress(from));
// 设置收信人
InternetAddress[] addressTo = { new InternetAddress(to) };
msg.setRecipients(Message.RecipientType.TO, addressTo);
// 设置抄送人
if (cc.trim().length() != 0) {
InternetAddress[] addressCc = { new InternetAddress(cc) };
msg.setRecipients(Message.RecipientType.CC, addressCc);
}
// 设置暗送人
if (bcc.trim().length() != 0) {
InternetAddress[] addressBcc = { new InternetAddress(bcc) };
msg.setRecipients(Message.RecipientType.BCC, addressBcc);
}
msg.setSubject(subject);
msg.setSentDate(new Date());
msg.setText(messageText);
// 发送邮件
Transport transport = mailSession.getTransport("smtp");
transport.connect(host, username, password);
transport.sendMessage(msg, msg.getAllRecipients());
transport.close();
isSuccess = true;
}
catch(Exception ex){
System.out.println("sending failed!");
}
return isSuccess;
}
}
注意:
1)MailConfig类(此处略)用于读取XML配置文件,配置文件内容如下。
此处我用的是yahoo发邮件服务器,其它信息用户自行配置。
<?xml version="1.0" encoding="iso-8859-1"?>
<MailConfig>
<SMTPHost>smtp.mail.yahoo.com</SMTPHost>
<From> </From>
<User> </User>
<Password> </Password>
</MailConfig>