转自:http://hi.baidu.com/dnrtxdmupsbhjmq/item/77621c23863ac1d50f37f969
转自:http://www.jspcn.net/htmlnews/200240128.html
javamail发送邮件:
// mail 相关信息
public class OAMailInfo {
private String smtp;
private boolean needAuth;
private String subject;
private String body;
private String fileAffix;
private String from;
private String to;
private String cc;
private String bcc;
private String user;
private String password;
public OAMailInfo(String smtp, boolean needAuth, String subject,
String body, String fileAffix, String from, String to, String cc,
String bcc, String user, String password) {
this.smtp = smtp;
this.needAuth = needAuth;
this.subject = subject;
this.body = body;
this.fileAffix = fileAffix;
this.from = from;
this.to = to;
this.cc = cc;
this.bcc = bcc;
this.user = user;
this.password = password;
}
public String getBcc() {
return bcc;
}
public void setBcc(String bcc) {
this.bcc = bcc;
}
public String getBody() {
return body;
}
public void setBody(String body) {
this.body = body;
}
public String getCc() {
return cc;
}
public void setCc(String cc) {
this.cc = cc;
}
public String getFileAffix() {
return fileAffix;
}
public void setFileAffix(String fileAffix) {
this.fileAffix = fileAffix;
}
public String getFrom() {
return from;
}
public void setFrom(String from) {
this.from = from;
}
public boolean getNeedAuth() {
return needAuth;
}
public void setNeedAuth(boolean needAuth) {
this.needAuth = needAuth;
}
public String getSmtp() {
return smtp;
}
public void setSmtp(String smtp) {
this.smtp = smtp;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getTo() {
return to;
}
public void setTo(String to) {
this.to = to;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
}
// SendMail
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
import common.OASYSConfiger;
import common.OASYSException;
public class OASendMail {
private MimeMessage mimeMsg;
private Session session;
private Properties props;
private String username = "";
private String password = "";
private Multipart mp;
private Address address[];
private List arrFileName = new ArrayList();
private boolean toFlag = true;
private boolean ccFlag = true;
private boolean bccFlag = true;
public OASendMail() {
}
public void setSmtpHost(String hostName) {
if (hostName == null) {
hostName = OASYSConfiger.getValue("smtp");
}
System.out.println("mail.smtp.host = " + hostName);
if (props == null)
props = System.getProperties();
props.put("mail.smtp.host", hostName);
}
public boolean createMimeMessage() throws OASYSException {
boolean createFlag = false;
try {
System.out.println("Read for fetch session!");
session = Session.getDefaultInstance(props, null);
createFlag = true;
} catch (Exception e) {
createFlag = false;
throw new OASYSException(e);
}
System.out.println("Read for create MIME!");
try {
mimeMsg = new MimeMessage(session);
mp = new MimeMultipart();
createFlag = true;
} catch (Exception e) {
createFlag = false;
throw new OASYSException(e);
}
return createFlag;
}
public void setNeedAuth(boolean need) {
System.out.println("mail.smtp.auth = " + need);
if (props == null)
props = System.getProperties();
if (need) {
props.put("mail.smtp.auth", "true");
} else {
props.put("mail.smtp.auth", "false");
}
}
public void setNamePass(String name, String pass) {
if (name == null) {
username = "username";
} else {
username = name;
}
if (pass == null) {
password = "passowrd";
} else {
password = pass;
}
}
public boolean setSubject(String mailSubject) throws OASYSException {
boolean flag = false;
if (mailSubject == null) {
mailSubject = "";
}
System.out.println("Set Subject!");
try {
mimeMsg.setSubject(mailSubject);
flag = true;
} catch (Exception e) {
flag = false;
throw new OASYSException(e);
}
return flag;
}
public boolean setBody(String mailBody) throws OASYSException {
boolean flag = false;
if (mailBody == null) {
mailBody = "";
}
try {
BodyPart bp = new MimeBodyPart();
bp.setContent(mailBody, "text/html;charset=shift_jis");
mp.addBodyPart(bp);
flag = true;
} catch (Exception e) {
flag = false;
throw new OASYSException(e);
}
return flag;
}
@SuppressWarnings("unchecked")
public boolean addFileAffix(String filename) throws OASYSException {
boolean flag = false;
if (filename == null || filename.trim().equals("")) {
return false;
}
try {
String[] arrfile = filename.split(",");
int len = arrfile.length;
if (len > 0) {
for (int i = 0; i < len; i++) {
arrFileName.add(arrfile[i]);
}
int FileCount = arrFileName.size();
for (int i = 0; i < FileCount; i++) {
BodyPart bp = new MimeBodyPart();
filename = arrFileName.get(i).toString();
FileDataSource fileds = new FileDataSource(filename);
bp.setDataHandler(new DataHandler(fileds));
bp.setFileName(new String(fileds.getName().getBytes(
"shift_jis"), "ISO8859_1"));
mp.addBodyPart(bp);
}
arrFileName = new ArrayList();
}
flag = true;
} catch (Exception e) {
flag = false;
throw new OASYSException(e);
}
return flag;
}
public boolean setFrom(String from) throws OASYSException {
boolean flag = false;
if (from == null) {
from = OASYSConfiger.getValue("from");
}
System.out.println("Set From!");
try {
mimeMsg.setFrom(new InternetAddress(from));
flag = true;
} catch (Exception e) {
flag = false;
throw new OASYSException(e);
}
return flag;
}
public boolean setTo(String to) throws OASYSException {
boolean flag = false;
if (to == null || to.trim().equals(""))
return false;
try {
String[] arrTo = to.split(",");
int receiverCount = arrTo.length;
if (receiverCount > 0) {
address = new InternetAddress[receiverCount];
for (int i = 0; i < receiverCount; i++) {
address[i] = new InternetAddress(arrTo[i]);
}
mimeMsg.addRecipients(Message.RecipientType.TO, address);
}
flag = true;
} catch (Exception e) {
flag = false;
throw new OASYSException(e);
}
return flag;
}
public boolean setCc(String cc) throws OASYSException {
boolean flag = false;
if (cc == null || cc.trim().equals(""))
return false;
try {
String[] arrCc = cc.split(",");
int receiverCount = arrCc.length;
if (receiverCount > 0) {
address = new InternetAddress[receiverCount];
for (int i = 0; i < receiverCount; i++) {
address[i] = new InternetAddress(arrCc[i]);
}
mimeMsg.setRecipients(Message.RecipientType.CC, address);
}
flag = true;
} catch (Exception e) {
flag = false;
throw new OASYSException(e);
}
return flag;
}
public boolean setBcc(String bcc) throws OASYSException {
boolean flag = false;
if (bcc == null || bcc.trim().equals("")) {
return false;
}
try {
String[] arrBcc = bcc.split(",");
int receiverCount = arrBcc.length;
if (receiverCount > 0) {
address = new InternetAddress[receiverCount];
for (int i = 0; i < receiverCount; i++) {
address[i] = new InternetAddress(arrBcc[i]);
}
mimeMsg.setRecipients(Message.RecipientType.BCC, address);
}
flag = true;
} catch (Exception e) {
flag = false;
throw new OASYSException(e);
}
return flag;
}
public boolean sendOut() throws OASYSException {
boolean flag = false;
try {
mimeMsg.setContent(mp);
mimeMsg.setSentDate(new Date());
mimeMsg.saveChanges();
System.out.println("Mail is Sending....");
Session mailSession = Session.getInstance(props, null);
Transport transport = mailSession.getTransport("smtp");
transport.connect((String) props.get("mail.smtp.host"), username,
password);
if (toFlag) {
transport.sendMessage(mimeMsg, mimeMsg
.getRecipients(Message.RecipientType.TO));
}
if (ccFlag) {
transport.sendMessage(mimeMsg, mimeMsg
.getRecipients(Message.RecipientType.CC));
}
if (bccFlag) {
transport.sendMessage(mimeMsg, mimeMsg
.getRecipients(Message.RecipientType.BCC));
}
// transport.send(mimeMsg);
System.out.println("Success!");
transport.close();
flag = true;
} catch (Exception e) {
flag = false;
throw new OASYSException(e);
}
return flag;
}
public OASendMail(OAMailInfo mailInfo) throws OASYSException {
setSmtpHost(mailInfo.getSmtp());
createMimeMessage();
setNeedAuth(mailInfo.getNeedAuth());
setNamePass(mailInfo.getUser(), mailInfo.getPassword());
if (setSubject(mailInfo.getSubject()) == false)
return;
if (setBody(mailInfo.getBody()) == false)
return;
if (setFrom(mailInfo.getFrom()) == false)
return;
if (setTo(mailInfo.getTo()) == false)
toFlag = false;
if (setCc(mailInfo.getCc()) == false)
ccFlag = false;
if (setBcc(mailInfo.getBcc()) == false)
bccFlag = false;
if (addFileAffix(mailInfo.getFileAffix()) == false)
return;
}
}
// test
public class Test {
public static void main(String[] args) throws OASYSException {
OAMailInfo mailInfo = new OAMailInfo(null, true, "subject", "body",
"c:\\abc.doc", "",
"",
"", null, null,
null);
OASendMail send = new OASendMail(mailInfo);
boolean flag = send.sendOut();
}
}
还有一个老版的JSP实现:
/*
*Author:tyfun
*DateTime:2003.01.09
*Package:com.westarsoft.function
*/
package com.westarsoft.function;
import java.util.*;
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
public class SendMail {
private String SMTPServer = new String();
private String from = new String();
private String subject = new String();
private String content = new String();
private String user = new String();
private String password = new String();
private String fileAttachment = new String();
public String getSMTPServer() {
return SMTPServer;
}
public void setSMTPServer(String SMTPServer) {
this.SMTPServer = SMTPServer;
}
public String getFrom() {
return from;
}
public void setFrom(String from) {
this.from = from;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getFileAttachment() {
return fileAttachment;
}
public void setFileAttachment(String fileAttachment) {
this.fileAttachment = fileAttachment;
}
public void sendMailTo(String to,String cc,String bcc) {
try {
Properties props = new Properties();
Session sendMailSession;
Store store;
Transport transport;
sendMailSession = Session.getInstance(props, null);
props.put("mail.smtp.host", SMTPServer);
MimeMessage newMessage = new MimeMessage(sendMailSession);
newMessage.setFrom(new InternetAddress(from));
newMessage.setSubject(subject);
newMessage.setSentDate(new Date());
/*
StringTokenizer tokenTO = new StringTokenizer(to, ",");
InternetAddress[] addrArrTO = new InternetAddress[tokenTO.countTokens()];
int i = 0;
while(tokenTO.hasMoreTokens()) {
addrArrTO[i] = new InternetAddress(tokenTO.nextToken().toString());
i++;
}
*/
transport = sendMailSession.getTransport("smtp");
transport.connect(SMTPServer, user, password);
//newMessage.setRecipients(Message.RecipientType.TO, addrArrTO);
newMessage.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
newMessage.setRecipients(Message.RecipientType.CC, InternetAddress.parse(cc));
newMessage.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(bcc));
MimeBodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText(content);
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(fileAttachment);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(fileAttachment);
multipart.addBodyPart(messageBodyPart);
newMessage.setContent(multipart);
transport.send(newMessage);
}
catch(Exception e) {
System.out.println(e);
}
}
}
<%
if(request.getMethod().equals("POST")) {
SendMail mail = new SendMail();
mail.setSMTPServer("200.1.1.157");
mail.setUser("lint");
mail.setPassword("30320");
mail.setFrom(request.getParameter("from"));
mail.setSubject(request.getParameter("subject"));
mail.setContent(request.getParameter("content"));
mail.setFileAttachment(request.getParameter("filename"));
mail.sendMailTo(request.getParameter("to"),request.getParameter("cc"),request.getParameter("bcc"));
}
%>