SMTP客户端

标题:SMTP客户端
作者:kagula
日期:2008-01-04

目的:
    通过这里的代码,在你的应用程序中,可以通过SMTP服务器发送电子邮件,无需任何修改
适应任何环境。

依赖项:
    [1]mail.jar
正文:
[1]源码段
/**
  * 发送电子邮件
  * 参数
  *   smtp.host smtp服务器名称
  *   smtp.user 登录smtp,用户名
  *   smtp.pwd  登录smtp,密码
  *   smtp.from  发送电子邮件地址
  *   smtp.to    接收电子邮件地址 (必填项)
  *   smtp.subject 主题 (必填项)
  *   smtp.content 内容 (必填项)
  *  
  *   缺少必填项,程序将直接返回。
  *  
  * @param map
  * @throws Exception
  */
 public static synchronized void sendMail(Map map)    throws Exception
 {   
  /**
   * 如果形参map没有提供,以下入口参数,则设置缺省值
   * smtp.host  smtp服务器名称
   * smtp.user  smtp登录用户名
   * smtp.pwd   smtp登录密码
   * smtp.from  发送电子邮件地址
   */
  
  if(map.get("smtp.host")==null||map.get("smtp.host").toString().length()<1)
  {
   map.put("smtp.host","缺省主机名"); 
  }
  if(map.get("smtp.user")==null||map.get("smtp.user").toString().length()<1)
  {
   map.put("smtp.user", "缺省SMTP服务器帐号");
  }
  if(map.get("smtp.pwd")==null||map.get("smtp.pwd").toString().length()<1)
  {
   map.put("smtp.pwd", "SMTP帐号密码");
  }  
  if(map.get("smtp.from")==null||map.get("smtp.from").toString().length()<1)
  {
   map.put("smtp.from", "发送电子信息");
  }
  
  /**
   * 如果缺少 必填项  程序  直接返回
   */
  if(map.get("smtp.to")==null||map.get("smtp.subject")==null||map.get("smtp.content")==null)
  {
   return;
  }
  
  if(map.get("smtp.to").toString().length()<1||map.get("smtp.subject").toString().length()<1||map.get("smtp.content").toString().length()<1)
  {
   return;
  }
  
  /**
   * 源码 正文
   */
  Properties props = new Properties();
  
  props.put("mail.smtp.host",(String)map.get("smtp.host"));   
  props.put("mail.smtp.user", (String)map.get("smtp.user"));
  props.put("mail.smtp.auth", "true"); //SMTP服务器用户验证
  
  Authenticator auth = new SMTPAuthenticator((String)map.get("smtp.user"),
    (String)map.get("smtp.pwd"));
  
  Session session = Session.getDefaultInstance(props, auth);
 
  MimeMessage msg = new MimeMessage(session);  
  
  //setFrom(new   InternetAddress("[email protected]",from));
  msg.setFrom(new InternetAddress((String)map.get("smtp.from"))); //设置发送人邮件
  
  // Set the to address
     msg.addRecipient(Message.RecipientType.TO,new InternetAddress((String)map.get("smtp.to")));
    
  msg.setSubject((String)map.get("smtp.subject"), "gbk");
  
  msg.setSentDate(new Date());
  
  msg.setText((String)map.get("smtp.content")); //邮件附件
 
  msg.saveChanges();
  
  Transport.send(msg);
 } 

你可能感兴趣的:(exception,String,session,properties,服务器,null)