少年阿賓

          那些青春的歲月

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
          //實體類:
          /**
           * 發(fā)送郵件的基本信息
           * @author dell
           *
           */
          public class MailInfo implements java.io.Serializable{

              private String host;//發(fā)送郵件的主機號
              private String port;//發(fā)送郵件的端口號
              private String fromAddress;//發(fā)送郵件地址
              private String toAddress;//接收郵件地址
              private String username;//發(fā)送郵件用戶的用戶名
              private String password;//發(fā)送郵件用戶的密碼
              private String validate;//是否需要身份的驗證:ture認證,false不認證信息
              private String subject;//郵件主題
              private String content;//郵件的內(nèi)容,分為文本,超文本,html等形式
              private String[] filepath;//發(fā)送郵件的附件的位置
              private String[] sendAddress;
              private String filename;//發(fā)送郵件的附件顯示的名稱
              private String receivepath;//接收郵件的時候附件保存的路徑
              private java.util.Date sentdate;
              private float filesize;
              private java.util.Date receivedate;
              private String mailauthor;//郵件作者
              private boolean read;//是否讀過,true讀過,false沒有閱讀過
              private boolean ExistsFile;//是否有附件true有,false沒有
              private boolean replysign;//是否有回執(zhí)
              private String messageid;//消息ID
              private int mailnumber;//郵件數(shù)目,一個用戶的總郵件數(shù)
              
              
              public String[] getSendAddress() {
                  return sendAddress;
              }
              public void setSendAddress(String[] sendAddress) {
                  this.sendAddress = sendAddress;
              }
              public int getMailnumber() {
                  return mailnumber;
              }
              public void setMailnumber(int mailnumber) {
                  this.mailnumber = mailnumber;
              }
              public String getMessageid() {
                  return messageid;
              }
              public void setMessageid(String messageid) {
                  this.messageid = messageid;
              }
              public boolean isExistsFile() {
                  return ExistsFile;
              }
              public boolean isRead() {
                  return read;
              }
              public void setExistsFile(boolean existsFile) {
                  ExistsFile = existsFile;
              }
              public void setRead(boolean read) {
                  this.read = read;
              }
              public boolean isReplysign() {
                  return replysign;
              }
              public void setReplysign(boolean replysign) {
                  this.replysign = replysign;
              }
              public String getMailauthor() {
                  return mailauthor;
              }
              public void setMailauthor(String mailauthor) {
                  this.mailauthor = mailauthor;
              }
              public java.util.Date getReceivedate() {
                  return receivedate;
              }
              public void setReceivedate(java.util.Date receivedate) {
                  this.receivedate = receivedate;
              }

              public java.util.Date getSentdate() {
                  return sentdate;
              }
              public void setSentdate(java.util.Date sentdate) {
                  this.sentdate = sentdate;
              }
              
              public String[] getFilepath() {
                  return filepath;
              }
              public void setFilepath(String[] filepath) {
                  this.filepath = filepath;
              }
              public String getContent() {
                  return content;
              }
              public String getFilename() {
                  return filename;
              }
              public String getFromAddress() {
                  return fromAddress;
              }
              public String getHost() {
                  return host;
              }
              public String getPassword() {
                  return password;
              }
              public String getPort() {
                  return port;
              }
              public String getSubject() {
                  return subject;
              }
              public String getToAddress() {
                  return toAddress;
              }
              public String getUsername() {
                  return username;
              }
              public void setContent(String content) {
                  this.content = content;
              }
              public void setFilename(String filename) {
                  this.filename = filename;
              }
              public void setFromAddress(String fromAddress) {
                  this.fromAddress = fromAddress;
              }
              public void setHost(String host) {
                  this.host = host;
              }
              public void setPassword(String password) {
                  this.password = password;
              }
              public void setPort(String port) {
                  this.port = port;
              }
              public void setSubject(String subject) {
                  this.subject = subject;
              }
              public void setToAddress(String toAddress) {
                  this.toAddress = toAddress;
              }
              public void setUsername(String username) {
                  this.username = username;
              }
              public String getValidate() {
                  return validate;
              }
              public void setValidate(String validate) {
                  this.validate = validate;
              }
              public String getReceivepath() {
                  return receivepath;
              }
              public void setReceivepath(String receivepath) {
                  this.receivepath = receivepath;
              }
          }




          //發(fā)送郵件程序

          import java.util.Properties;

          import javax.activation.DataHandler;
          import javax.activation.DataSource;
          import javax.activation.FileDataSource;
          import javax.mail.BodyPart;
          import javax.mail.Message;
          import javax.mail.Multipart;
          import javax.mail.Session;
          import javax.mail.Transport;
          import javax.mail.internet.InternetAddress;
          import javax.mail.internet.MimeBodyPart;
          import javax.mail.internet.MimeMessage;
          import javax.mail.internet.MimeMultipart;
          import javax.mail.internet.MimeUtility;

          public class SendMail {
              
              public boolean Send(MailInfo mailInfo)throws Exception{
                  Properties props=new Properties();
                  //設置發(fā)送郵件的郵件服務器的屬性(這里使用網(wǎng)易的smtp服務器)
                  props.put("mail.smtp.host", mailInfo.getHost());
                  //需要經(jīng)過授權(quán),也就是有戶名和密碼的校驗,這樣才能通過驗證(一定要有這一條)
                  props.put("mail.smtp.auth", mailInfo.getValidate());
                  Session session=Session.getDefaultInstance(props);// 用剛剛設置好的props對象構(gòu)建一個session
          //        session.setDebug(true);
                  MimeMessage message=new MimeMessage(session);
                  try{
                      message.setFrom(new InternetAddress(mailInfo.getFromAddress()));
                      InternetAddress[] sendTo = new InternetAddress[mailInfo.getSendAddress().length];
                      for(int i=0;i<mailInfo.getSendAddress().length;i++){
                          sendTo[i]=new InternetAddress(mailInfo.getSendAddress()[i]);
                      }
          //            message.addRecipient(Message.RecipientType.TO, new InternetAddress(mailInfo.getToAddress()));
                      message.setRecipients(Message.RecipientType.TO, sendTo);
                      message.setSubject(mailInfo.getSubject());
                      message.setSentDate(mailInfo.getSentdate());
                      //向multipart對象中添加郵件的各個部分內(nèi)容,包括文本內(nèi)容和附件
                      Multipart multipart=new MimeMultipart();
                      BodyPart contentPart=new MimeBodyPart();
                      contentPart.setText(mailInfo.getContent());
                      multipart.addBodyPart(contentPart);
                      //添加附件
                      for(int i=0;i<mailInfo.getFilepath().length;i++){
                          BodyPart messageBodyPart=new MimeBodyPart();
                          String fpath=mailInfo.getFilepath()[i].split(",")[0];
                          DataSource source=new FileDataSource(fpath);
                          messageBodyPart.setDataHandler(new DataHandler(source));
                          sun.misc.BASE64Encoder enc=new sun.misc.BASE64Encoder();
                          String lname=fpath.substring(fpath.lastIndexOf("."), fpath.length());
                          String fname=String.valueOf(System.currentTimeMillis())+lname;
                          messageBodyPart.setFileName("=?GBK?B?"+enc.encode(fname.getBytes())+"?=");
                          multipart.addBodyPart(messageBodyPart);
                      }
                      
                      
                      message.setContent(multipart);//text/plain表示純文本內(nèi)容
                      message.saveChanges();
                      Transport transport=session.getTransport("smtp");
                      transport.connect(mailInfo.getHost(),mailInfo.getUsername(),mailInfo.getPassword());
                      transport.sendMessage(message,message.getAllRecipients());
                      transport.close();
                      return true;
                  }catch(Exception e){
                      e.printStackTrace();
                  }
                  
                  return false;
              }
          }





          //測試代碼:

          import org.junit.After;
          import org.junit.Before;
          import org.junit.Test;

          public class SendTest {
              @Test
              public void mailTest(){
                  SendMail mail=new SendMail();
                  MailInfo mailInfo=new MailInfo();
                  mailInfo.setContent("郵件內(nèi)容44444444444444444444");
                  String[] filepath=new String[]{"D:\\1317742305879.csv","D:\\zpssoa.log","E:\\Emotion\\Photo\\好寂寞好空虛.gif"};
                  mailInfo.setFilepath(filepath);
          //        mailInfo.setFilename("希望"+fname);
                  mailInfo.setFromAddress("leeposter@126.com");
                  mailInfo.setHost("smtp.126.com");
                  mailInfo.setSubject("郵件主題444444444444444444444");
          //        mailInfo.setToAddress("liposter@163.com");
                  String[] destination=new String[]{"liposter@163.com","lposter@163.com","liposter@126.com"};
                  mailInfo.setSendAddress(destination);
                  mailInfo.setUsername("leeposter");
                  mailInfo.setValidate("true");
                  mailInfo.setPassword("****");
                  try{
                      boolean flag=mail.Send(mailInfo);
                      if(flag==true){
                          System.out.println("發(fā)送成功");
                      }else{
                          System.out.println("發(fā)送失敗");
                      }
                  }catch(Exception e){
                      e.printStackTrace();
                  }
              }
          }
          posted on 2011-10-18 23:28 abin 閱讀(1394) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          主站蜘蛛池模板: 景宁| 达日县| 壶关县| 禄劝| 桃源县| 邢台县| 中超| 缙云县| 洪洞县| 昭觉县| 九台市| 建宁县| 察隅县| 定结县| 东至县| 南召县| 老河口市| 六枝特区| 观塘区| 抚宁县| 于田县| 霸州市| 秦皇岛市| 建湖县| 安庆市| 都兰县| 凯里市| 鹿邑县| 浙江省| 金山区| 盐山县| 新兴县| 黄骅市| 静宁县| 大冶市| 陆良县| 霍林郭勒市| 曲麻莱县| 泰安市| 雅安市| 鞍山市|