javamail发邮件

转自: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"));
}
%>







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值