少年阿賓

          那些青春的歲月

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
          郵件發(fā)送和接收已經全部實現,大家在轉發(fā)市請注明出處(我這也是參考了N多大牛的作品):

          //發(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ā)送郵件的郵件服務器的屬性(這里使用網易的smtp服務器)
                  props.put("mail.smtp.host", mailInfo.getHost());
                  //需要經過授權,也就是有戶名和密碼的校驗,這樣才能通過驗證(一定要有這一條)
                  props.put("mail.smtp.auth", mailInfo.getValidate());
                  Session session=Session.getDefaultInstance(props);// 用剛剛設置好的props對象構建一個session
                  session.setDebug(true);
                  MimeMessage message=new MimeMessage(session);
                  try{
                      message.setFrom(new InternetAddress(mailInfo.getFromAddress()));
                      message.addRecipient(Message.RecipientType.TO, new InternetAddress(mailInfo.getToAddress()));
                      message.setSubject(mailInfo.getSubject());
                      message.setSentDate(mailInfo.getSentdate());
                      //向multipart對象中添加郵件的各個部分內容,包括文本內容和附件
                      Multipart multipart=new MimeMultipart();
                      BodyPart contentPart=new MimeBodyPart();
                      contentPart.setText(mailInfo.getContent());
                      multipart.addBodyPart(contentPart);
                      //添加附件
                      if(mailInfo.getFilepath()!=null){
                          BodyPart messageBodyPart=new MimeBodyPart();
                          DataSource source=new FileDataSource(mailInfo.getFilepath());
                          
                          messageBodyPart.setDataHandler(new DataHandler(source));
                          sun.misc.BASE64Encoder enc=new sun.misc.BASE64Encoder();
                          String fname=mailInfo.getFilename();
                          if(fname!=null){
                              messageBodyPart.setFileName("=?GBK?B?"+enc.encode(fname.getBytes())+"?=");
                      //        messageBodyPart.setFileName(MimeUtility.encodeText(fname));
                              multipart.addBodyPart(messageBodyPart);
                          }else{
                              String lname=mailInfo.getFilepath().substring(mailInfo.getFilepath().lastIndexOf("\\")+1, mailInfo.getFilepath().length());
                              System.out.println(lname);
                              messageBodyPart.setFileName("=?GBK?B?"+enc.encode(lname.getBytes())+"?=");
                      //        messageBodyPart.setFileName(MimeUtility.encodeText(lname));
                              multipart.addBodyPart(messageBodyPart);
                          }
                          
                      }

                      
                      message.setContent(multipart);//text/plain表示純文本內容
                      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;
              }
          }



          //測試郵件發(fā)送類
          import org.junit.After;
          import org.junit.Before;
          import org.junit.Test;

          public class SendTest {

              @Before
              public void setUp() throws Exception {
              }

              @After
              public void tearDown() throws Exception {
              }
              @Test
              public void mailTest(){
                  SendMail mail=new SendMail();
                  MailInfo mailInfo=new MailInfo();
                  mailInfo.setContent("郵件內容44444444444444444444");
                  mailInfo.setFilepath("E:\\Emotion\\Photo\\乳溝.jpg");
                  String fname=mailInfo.getFilepath().substring(mailInfo.getFilepath().lastIndexOf("."), mailInfo.getFilepath().length());
                  System.out.println(fname);
          //        mailInfo.setFilename("希望"+fname);
                  mailInfo.setFromAddress("leeposter@163.com");
                  mailInfo.setHost("smtp.163.com");
                  mailInfo.setSubject("郵件主題444444444444444444444");
                  mailInfo.setToAddress("liposter@163.com");
                  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-17 23:56 abin 閱讀(1862) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 邳州市| 盈江县| 临沂市| 依安县| 建阳市| 甘肃省| 大丰市| 马边| 东方市| 桓台县| 安阳市| 得荣县| 思茅市| 惠安县| 阳谷县| 务川| 新田县| 镇康县| 安福县| 凌源市| 杨浦区| 岳普湖县| 广汉市| 武宣县| 大丰市| 普定县| 桦甸市| 荃湾区| 平果县| 额济纳旗| 繁峙县| 梁平县| 偏关县| 延津县| 宣武区| 来安县| 周宁县| 漳平市| 肥城市| 泰和县| 章丘市|