`
sophia828
  • 浏览: 9790 次
社区版块
存档分类
最新评论

零碎1-利用代理发邮件Java功能

 
阅读更多
  • 1. 需求
  • 用Java完成发邮件的小程序,可用代理,可添加附件
  • 2.实现关键部分
  • jar包:javax.mail.jar(主要包,发送邮件相关),activation-1.1.1.jar(主要用来处理附件)
  • 代码太多,这里就讲下思路:
    • 1)设置session等完成邮件基础设置(代码片段):
    • this.auth = new MailAuthenticator(username,password);
      Session session = Session.getDefaultInstance(pros,auth);
      session.setDebug(true); //设置获取 debug 信息
      mimeMessage = new MimeMessage(session);
          然后包装MimeMessage,即设置邮件内容(代码片段):
    • mimeMessage.setSubject(sub);
      mimeMessage.setText(text);
      mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
      mimeMessage.setSentDate(new Date());
      mimeMessage.setFrom(new InternetAddress(username,username));
    •    然后利用Transport发送MimeMessage;
    • Transport.send(mimeMessage);
         这样就完成基本的流程。
    • 2)在邮件发送前的任何地方,添加如下代码:
    • System.setProperty("socksProxyHost", 代理IP);  
      System.setProperty("socksProxyPort",代理接口);
    • 实现调用代理。
    • 3)包装multipart,设置附件信息,
    •  if(multipart==null){
             multipart = new MimeMultipart();
      }
      multipart.addBodyPart(writeFiles(file));
       mimeMessage.setContent(multipart);
       实现添加附件功能。
    • 注:在自己写的程序中发送邮件,相当于利用第三方操作自己的邮箱,这个时候有些邮箱就要求做用户密码和SSL验证,我测试用的QQ邮箱就需要,实现这个的关键,要先新建一个用户密码验证类MailAuthenticator,实现验证关键代码如下:
      this.auth = new MailAuthenticator(username,password);
      Session session = Session.getDefaultInstance(pros,auth);
    • 代码中pros,是个Properties对象,包含了SSL验证等相关信息,如下:
  • 3.完成
    •  程序最终实现见http://code.taobao.org/p/MailSender828/src/trunk/SendMail/
    • 配置信息都单独放在properties文件中,方便打包后再次修改,其中:
    •  config.properties是存放发送邮件服务器、SSL验证信息、代理等信息的文件;
    • mail.properties是存放具体邮件内容,例如收发件人邮箱地址、标题等内容的文件;
    • attachments.txt是存放附件附件实际路径的文档,一个文件路径一行,文档可以为空。
  • 大小: 11 KB
  • 大小: 20.1 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics