利用Java实现电子邮件的批量发送

发表于:2011-11-02 10:08

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:小瓶子(cnblogs)    来源:51Testing软件测试网采编

  3、调用上面的邮箱发送器,可以构建一个工厂类,工厂类可以封装创建的过程,所以通过读配置文件获取邮箱用户名,密码都会变得十分方便。下面的代码是我在写观察者模式的时候写的,只是简单演示了工厂类。

  1.  package com.mzule.dp.observer.factory;  
  2. import com.mzule.dp.observer.constant.MailSenderType;  
  3. import com.mzule.simplemail.SimpleMailSender;  
  4. /**  
  5. * 发件箱工厂  
  6. *  
  7. * @author MZULE  
  8. *  
  9. */ 
  10. public class MailSenderFactory {  
  11. /**  
  12. * 服务邮箱  
  13. */ 
  14. private static SimpleMailSender serviceSms = null;  
  15. /**  
  16. * 获取邮箱  
  17. *  
  18. * @param type 邮箱类型  
  19. * @return 符合类型的邮箱  
  20. */ 
  21. public static SimpleMailSender getSender(MailSenderType type) {  
  22. if (type == MailSenderType.SERVICE) {  
  23. if (serviceSms == null) {  
  24. serviceSms = new SimpleMailSender("invisible@126.com",  
  25. "hidden");  
  26. }  
  27. return serviceSms;  
  28. }  
  29. return null;  
  30. }  
  31. }

  4、发送邮件,还是观察者模式DEMO里面的代码,呼呼。

  1. package com.mzule.dp.observer.observer;  
  2. import java.util.ArrayList;  
  3. import java.util.List;  
  4. import java.util.Observable;  
  5. import java.util.Observer;  
  6. import javax.mail.MessagingException;  
  7. import javax.mail.internet.AddressException;  
  8. import com.mzule.dp.observer.constant.MailSenderType;  
  9. import com.mzule.dp.observer.factory.MailSenderFactory;  
  10. import com.mzule.dp.observer.po.Product;  
  11. import com.mzule.simplemail.SimpleMailSender;  
  12. public class ProductPriceObserver implements Observer {  
  13. @Override 
  14. public void update(Observable obj, Object arg) {  
  15. Product product = null;  
  16. if (obj instanceof Product) {  
  17. product = (Product) obj;  
  18. }  
  19. if (arg instanceof Float) {  
  20. Float price = (Float) arg;  
  21.  Float decrease = product.getPrice() - price;  
  22. if (decrease >0) {  
  23. // 发送邮件  
  24. SimpleMailSender sms = MailSenderFactory  
  25. .getSender(MailSenderType.SERVICE);  
  26. List<String> recipients = new ArrayList<String>();  
  27. recipients.add("invisible@qq.com");  
  28. recipients.add("invisible@gmail.com");  
  29. try {  
  30. for (String recipient : recipients) {  
  31. sms.send(recipient, "价格变动""您关注的物品" 
  32. + product.getName() + "降价了,由" 
  33. + product.getPrice() + "元降到" + price + "元,降幅达" 
  34. + decrease + "元人民币。赶快购物吧。");  
  35. }  
  36. catch (AddressException e) {  
  37. e.printStackTrace();  
  38. catch (MessagingException e) {  
  39. e.printStackTrace();  
  40. }  
  41. }  
  42. }  
  43. }  
  44. }

  5、剩下的就是去查看邮件是否发送成功了。呼呼~~

33/3<123
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号