联通连不通 发表于 2013-8-28 16:28

发送邮件

54public static int sendMail(String account, String regemail, String url) {   
try {   
   // 建立邮件会话   
   Properties props = new Properties(); // 用来在一个文件中存储键-值对的,其中键和值是用等号分隔的   
   props.put("mail.smtp.host", Config.getConfig().getProperty(   
   "MAIL_SERVER", 2));   
   props.put("mail.smtp.auth", "true");   
   Session session = Session.getInstance(props);   
   session.setDebug(true);   
   // 由邮件会话新建一个消息对象   
   MimeMessage message = new MimeMessage(session);   
   // 设置发件人的地址   
   Address mail_from = new InternetAddress(Config.getConfig()   
   .getProperty("MAIL_FROM", 2));   
   message.setFrom(mail_from);   
   // 设置发件人的地址   
   Address mail_to = new InternetAddress(regemail);   
   message.setRecipient(Message.RecipientType.TO, mail_to);   
   // 设置标题   
   message.setSubject("百忆用户注册 - 邮箱确认");   
   // 设置邮件内容格式,并防止乱码出现   
   message.setContent(Javamails   
   .getEmailContent(account, regemail, url),   
   "text/html;charset=GBK");   
   // 设置发信时间   
   message.setSentDate(new Date());   
   log.debug("邮件标题: " + message.getSubject());   
   log.debug("邮件内容: " + (String) message.getContent());   
   // 存储邮件信息   
   message.saveChanges();   
   Transport transport = session.getTransport("smtp");   
   transport.connect(Config.getConfig().getProperty("MAIL_SERVER", 2),   
   Config.getConfig().getProperty("MAIL_COUNT", 2), Config   
       .getConfig().getProperty("MAIL_PASSWORD", 2));   
   // 发送邮件,其中第二个参数是所有已设好的收件人地址   
   transport.sendMessage(message, message.getAllRecipients());   
   transport.close();   
   log.debug("success");   
   return 1;   
} catch (AddressException e) {   
   e.printStackTrace();   
   log.error("Address is Exception");   
   return 0;   
} catch (MessagingException e) {   
   e.printStackTrace();   
   log.error("Messaging is Exception");   
   return 0;   
} catch (Exception e) {   
   e.printStackTrace();   
   log.error("read monkey.properties failed");   
   return 0;   
} }    
这里牵涉到读取配置文件,好的项目,公用的话会写到以.properties结尾的属性文件里面###email配置MAIL_SERVER=60.191.25.164   
MAIL_COUNT=*********(发送者邮箱前缀名称)例如:houjunchang_daxue结合下面的邮箱来写MAIL_FROM=houjunchang_daxue@163.comMAIL_PASSWORD=邮箱密码   
页: [1]
查看完整版本: 发送邮件