blogjava's web log

          blogjava's web log
          ...

          [推薦]系統發郵件測試 Dumbster

          ? 當我們系統要用Junit 測試批量發郵件功能的時候,
          既要測試 這功能是否正常。
          但又不能真正意義上的把郵件發出去。

          要不你在測試的時候 那么多垃圾郵件給用戶 用戶肯定要煩惱了。



          問題解決:


          在這里 http://quintanasoft.com/dumbster/? 有個專門 測試 發Email 開源類庫。

          詳細說明點擊該網站查看。

          一個示例


          package?com.dumbster.mytest;

          import?junit.framework.TestCase;

          import?com.dumbster.smtp.*;

          import?junit.framework.TestCase;
          import?javax.mail.Session;
          import?javax.mail.Message;
          import?javax.mail.Transport;
          import?javax.mail.MessagingException;
          import?javax.mail.internet.MimeMessage;
          import?javax.mail.internet.InternetAddress;
          import?java.util.Properties;
          import?java.util.Date;
          import?java.util.Iterator;
          import?java.util.*;

          /**
          ?*?
          @author?junmy
          ?*
          ?
          */


          public?class?SmtpServerTest?extends?TestCase?{
          ?????
          private?SimpleSmtpServer?server;
          ?????
          private?static?final?int?SMTP_PORT=1082;
          ????????
          public?SmtpServerTest(String?s)
          ????????
          {
          ????????????
          super(s);
          ????????}

          ????????
          ????????
          protected?void?setUp()?throws?Exception
          ????????
          {
          ????????????
          super.setUp();
          ????????
          ????????????server
          =SimpleSmtpServer.start(SMTP_PORT);
          ????????}

          ????????
          ????????
          protected?void?tearDown()?throws?Exception
          ????????
          {
          ????????????
          super.tearDown();
          ????????????????server.stop();
          ????????}

          ????????
          ????????
          public?void?testSendBacthMail()
          ????????
          {
          ??????????????String?From?
          =?"sender@here.com";
          ??????????????String?Subject?
          =?"Test";
          ??????????????String?body?
          =?"Test?Body";

          ????????????
          //TODO:
          ????????????
          //??dal.BacthMail()
          ????????????
          //得到后臺數據庫中所有用戶得email
          ??????????????
          ????????????List
          <String>?list=new?ArrayList<String>();
          ????
          ????????????
          //list=dal.BacthMail();
          ????????????Properties?mailProps?=?new?Properties();
          ????????????mailProps.setProperty(
          "mail.smtp.host",?"localhost");
          ????????????mailProps.setProperty(
          "mail.smtp.port",?""?+?SMTP_PORT);
          ????????????mailProps.setProperty(
          "mail.smtp.sendpartial",?"true");
          ????????????Session?session?
          =?Session.getInstance(mailProps,?null);
          ????????????
          ????????????
          for(String?strto:list)
          ????????????
          {
          ????????????????
          try
          ????????????????
          {
          ??????????????????MimeMessage?msg?
          =?new?MimeMessage(session);
          ????????????????????msg.setFrom(
          new?InternetAddress(From));
          ????????????????????msg.setSubject(Subject);
          ????????????????????msg.setSentDate(
          new?Date());
          ????????????????????msg.setText(body);
          ????????????????????System.out.println(
          "emailList:"+strto);
          ????????????????????msg.setRecipient(Message.RecipientType.TO,?
          new?InternetAddress(strto));
          ????????????????????Transport.send(msg);
          ????????????????}

          ????????????????
          catch?(MessagingException?e)?{
          ????????????????????
          //?TODO?自動生成?catch?塊
          ????????????????????e.printStackTrace();
          ????????????????????fail(
          "Exception:"+e);
          ????????????????}
          ????????
          ????????????}

          ????????????assertEquals(list.size(),?server.getReceivedEmailSize());
          ??????????
          ????????????Iterator?emailIter?
          =?server.getReceivedEmail();
          ????????????
          for(int?i=0;i<server.getReceivedEmailSize();i++)
          ????????????
          {
          ????????????????SmtpMessage?email?
          =?(SmtpMessage)?emailIter.next();
          ????????????????assertEquals(body,email.getBody());
          ????????????????assertEquals(Subject,email.getHeaderValue(
          "Subject"));
          ????????????????assertEquals(list.get(i),email.getHeaderValue(
          "To"));
          ????????????}

          ????????????
          ????????????
          ????????}
          ????????

          }

          詳細說明請下載源代碼查閱
          http://quintanasoft.com/dumbster/
          ? http://sourceforge.net/projects/dumbster

          Dot Net 版本

          ?http://ndumbster.sourceforge.net/

          dot net 下示例

          Nunit Test Batch Email


          希望對你有用!

          posted on 2006-10-30 12:57 record java and net 閱讀(1338) 評論(1)  編輯  收藏 所屬分類: java

          評論

          # re: [推薦]系統發郵件測試 Dumbster 2006-10-31 10:13 inlife.cn

          頂一個。歡迎 北京的朋友訪問 http://www.inlife.cn
            回復  更多評論   

          導航

          常用鏈接

          留言簿(44)

          新聞檔案

          2.動態語言

          3.工具箱

          9.文檔教程

          友情鏈接

          搜索

          最新評論

          主站蜘蛛池模板: 虎林市| 肃南| 沧源| 巴塘县| 缙云县| 广东省| 汝南县| 会昌县| 宿松县| 左权县| 沈阳市| 乌兰县| 施甸县| 渝北区| 屏南县| 铜陵市| 青铜峡市| 封丘县| 宁陕县| 安远县| 日喀则市| 将乐县| 潞西市| 浑源县| 厦门市| 金堂县| 伊吾县| 内丘县| 济源市| 祁东县| 申扎县| 南投市| 芒康县| 安顺市| 工布江达县| 镇宁| 河北省| 贡嘎县| 万盛区| 五原县| 新源县|