Javamail 发送邮件方法源代码:
public static void send(MailInfo mail) throws Exception
{
try
{
Properties props = new Properties();
String smtpServer = mail.getSmtpServer();
String SmtpUser = mail.getUsername();
String SmtpPwd = mail.getPassword();
String subject = mail.getSubject();
String content=mail.getContent();
content=new String(content.getBytes("GB2312"),"iso-8859-1");
if(mail.getSubject()!=null) subject = mail.getSubject();
props.put("mail.smtp.host", smtpServer);//设置邮件smtp服务器地址
props.put("mail.smtp.auth","true"); //设置服务器smtp需要验证
Session sendMailSession = Session.getInstance(props, null);
MimeMessage newMessage = new MimeMessage(sendMailSession);
newMessage.setFrom(new InternetAddress(mail.getFrom()));
// 开始设置群发邮件地址
InternetAddress[] address = new InternetAddress[mail.getTo().length];
for (int i = 0; i < mail.getTo().length; i++) {
address[i] = new InternetAddress((mail.getTo())[i]);
}
newMessage.setRecipients(Message.RecipientType.TO, address);
if( mail.getCc()!=null )
{
InternetAddress[] addresscc = {new InternetAddress(mail.getCc())};
newMessage.setRecipients(Message.RecipientType.CC, addresscc);
}
if( mail.getBcc()!=null ){
InternetAddress[] addressbcc = {new InternetAddress(mail.getBcc())};
newMessage.setRecipients(Message.RecipientType.CC, addressbcc);
}
newMessage.setSubject(subject);
newMessage.setSentDate(new Date());
//对邮件发送内容中分附近进行处理
if(mail.getAttachment()==null)
{
newMessage.setDataHandler(new DataHandler(content,"text/html"));
}
else
{
MimeBodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setDataHandler(new DataHandler(content,"text/html"));
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(mail.getAttachment());
messageBodyPart.setDataHandler(new DataHandler(source));
File fn = new File(mail.getAttachment());
String fileName = fn.getName();
if(fileName!=null&&!"".equals(fileName)){
fileName = new String(fileName.getBytes("GB2312"),"iso-8859-1");
}
messageBodyPart.setFileName(fileName);
multipart.addBodyPart(messageBodyPart);
newMessage.setContent(multipart);
}
//开始连接smtp服务器,并检查是否通过smtp发信验证。
Transport transport = sendMailSession.getTransport("smtp");
transport.connect(smtpServer,SmtpUser,SmtpPwd);
transport.sendMessage(newMessage,newMessage.getAllRecipients());
transport.close();
}
catch(MessagingException e)
{
System.out.println("邮件发送失败");
e.printStackTrace();
}
}
private String smtpServer = null;
private String username = null;
private String password = null;
private String subject = null;
private String attachment = null;
private String content = null;
private String bcc = null;//邮件密送
private String cc = null;//邮件抄送
private String[] to = "";//发送地址,可多选
private String from = null;//发送来源
Send(MailInfo mail)主要实现单发群发.
可支持文本发送及Html格式。
String[] to 用数组存放收件人的邮箱名称!可一个或多个。
下面是一个Mian方法测试例子。
例如:
String[] usersMail ={"xuesongtan20@163.com","wangnana_001@163.com"};
mInfo.setSubject("Hello");
mInfo.setFrom("xuesongtan20@163.com");
mInfo.setTo(usersMail);
mInfo.setTo("xuesongtan20@163.com");
//mInfo.setContent("http://www.163.com");
mInfo.setContent("<html>" +
"<head> <title>My JSP</title>" +
"</head>"+
"<body><a href='http://www.baidu.com'>Hello,小小猪的大大爱</a></body>"+
"</html>");
mInfo.setAttachment("E:\\Hello.html");
mInfo.setSmtpServer("smtp.163.com");
mInfo.setUserName("");
mInfo.setPassword("");
//mInfo.setCc("shenxinyang20@sina.com");
SendMails mail = new SendMails();
//单发群发带附件
//mail.send(mInfo);
public static void send(MailInfo mail) throws Exception
{
try
{
Properties props = new Properties();
String smtpServer = mail.getSmtpServer();
String SmtpUser = mail.getUsername();
String SmtpPwd = mail.getPassword();
String subject = mail.getSubject();
String content=mail.getContent();
content=new String(content.getBytes("GB2312"),"iso-8859-1");
if(mail.getSubject()!=null) subject = mail.getSubject();
props.put("mail.smtp.host", smtpServer);//设置邮件smtp服务器地址
props.put("mail.smtp.auth","true"); //设置服务器smtp需要验证
Session sendMailSession = Session.getInstance(props, null);
MimeMessage newMessage = new MimeMessage(sendMailSession);
newMessage.setFrom(new InternetAddress(mail.getFrom()));
// 开始设置群发邮件地址
InternetAddress[] address = new InternetAddress[mail.getTo().length];
for (int i = 0; i < mail.getTo().length; i++) {
address[i] = new InternetAddress((mail.getTo())[i]);
}
newMessage.setRecipients(Message.RecipientType.TO, address);
if( mail.getCc()!=null )
{
InternetAddress[] addresscc = {new InternetAddress(mail.getCc())};
newMessage.setRecipients(Message.RecipientType.CC, addresscc);
}
if( mail.getBcc()!=null ){
InternetAddress[] addressbcc = {new InternetAddress(mail.getBcc())};
newMessage.setRecipients(Message.RecipientType.CC, addressbcc);
}
newMessage.setSubject(subject);
newMessage.setSentDate(new Date());
//对邮件发送内容中分附近进行处理
if(mail.getAttachment()==null)
{
newMessage.setDataHandler(new DataHandler(content,"text/html"));
}
else
{
MimeBodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setDataHandler(new DataHandler(content,"text/html"));
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(mail.getAttachment());
messageBodyPart.setDataHandler(new DataHandler(source));
File fn = new File(mail.getAttachment());
String fileName = fn.getName();
if(fileName!=null&&!"".equals(fileName)){
fileName = new String(fileName.getBytes("GB2312"),"iso-8859-1");
}
messageBodyPart.setFileName(fileName);
multipart.addBodyPart(messageBodyPart);
newMessage.setContent(multipart);
}
//开始连接smtp服务器,并检查是否通过smtp发信验证。
Transport transport = sendMailSession.getTransport("smtp");
transport.connect(smtpServer,SmtpUser,SmtpPwd);
transport.sendMessage(newMessage,newMessage.getAllRecipients());
transport.close();
}
catch(MessagingException e)
{
System.out.println("邮件发送失败");
e.printStackTrace();
}
}
private String smtpServer = null;
private String username = null;
private String password = null;
private String subject = null;
private String attachment = null;
private String content = null;
private String bcc = null;//邮件密送
private String cc = null;//邮件抄送
private String[] to = "";//发送地址,可多选
private String from = null;//发送来源
Send(MailInfo mail)主要实现单发群发.
可支持文本发送及Html格式。
String[] to 用数组存放收件人的邮箱名称!可一个或多个。
下面是一个Mian方法测试例子。
例如:
String[] usersMail ={"xuesongtan20@163.com","wangnana_001@163.com"};
mInfo.setSubject("Hello");
mInfo.setFrom("xuesongtan20@163.com");
mInfo.setTo(usersMail);
mInfo.setTo("xuesongtan20@163.com");
//mInfo.setContent("http://www.163.com");
mInfo.setContent("<html>" +
"<head> <title>My JSP</title>" +
"</head>"+
"<body><a href='http://www.baidu.com'>Hello,小小猪的大大爱</a></body>"+
"</html>");
mInfo.setAttachment("E:\\Hello.html");
mInfo.setSmtpServer("smtp.163.com");
mInfo.setUserName("");
mInfo.setPassword("");
//mInfo.setCc("shenxinyang20@sina.com");
SendMails mail = new SendMails();
//单发群发带附件
//mail.send(mInfo);