public class EmailUtil {
public static void sendEmail(String smtpHost, String senderAddress, String senderName,
String receiverAddress, String sub, String content) throws Exception {
List<String> recipients = new ArrayList<String>();
recipients.add(receiverAddress);
sendEmail(smtpHost, senderAddress, senderName, recipients, sub, content);
}
public static void sendEmail(String smtpHost, String senderAddress, String senderName,
List<String> recipients, String sub, String content) throws Exception {
if (smtpHost == null) {
String errMsg = "Could not send email: smtp host address is null";
throw new Exception(errMsg);
}
try {
Properties props = System.getProperties();
props.put("mail.smtp.host", smtpHost);
props.put("mail.smtp.port", "25");
props.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(props,null );
MimeMessage message = new MimeMessage( session );
message.setSubject(sub,"UTF-8");
message.setFrom(new InternetAddress(senderAddress, senderName));
for (String recipient : recipients) {
message.addRecipients(Message.RecipientType.TO, recipient);
}
Multipart mp = new MimeMultipart("related");
MimeBodyPart mbp = new MimeBodyPart();
// 设定邮件内容的类型为 text/html
mbp.setContent(content, "text/html;charset=UTF-8");
mp.addBodyPart(mbp);
// 新建一个存放附件的BodyPart
mbp = new MimeBodyPart();
byte[] bytes=new byte[]{};
FileInputStream fis=new FileInputStream("F:/shu.jpg");
DataHandler dh = new DataHandler(new ByteArrayDataSource(fis,"application/octet-stream"));
mbp.setDataHandler(dh);
// 加上这句将作为附件发送,否则将作为信件的文本内容
mbp.setFileName("1.jpg");
mbp.setHeader("Content-ID", "IMG1" );
// 将含有附件的BodyPart加入到MimeMultipart对象中
mp.addBodyPart(mbp);
message.setContent(mp);
message.setSentDate( new Date() );
message.saveChanges();
Transport transport=session.getTransport("smtp");
transport.connect(smtpHost,"hu_wei118","password");
transport.sendMessage(message,message.getAllRecipients());
transport.close();
} catch (Exception e) {
throw new Exception("errorMsg", e);
}
}
}
所需包:activation.jar mail.jar
给一个人发邮件
web应用中调用EmailUtil.sendEmail("smtp.163.com", "hu_wei118@163.com", "XX",
"hu_wei118@126.com", "Test", "你好!");
给N个人发邮件
web应用中调用
List<String> list=new ArrayList<String>();
list.add(hu_wei118@126.com);
list.add(xxxx@xxx.com);
list.add(xxxxx@xxxx.cn);
EmailUtil.sendEmail("smtp.163.com", "hu_wei118@163.com", "XX", list,
"Test", "你好!");