spring mail 发送邮件

来源:互联网 发布:奥飞数据与奥飞娱乐 编辑:程序博客网 时间:2024/05/16 02:19

最近在项目中用到了发送邮件的功能(用户注册邮箱激活、用户密码重置邮箱获取验证码等等),所以写了一下java的邮件发送。

java mail

java mail是最早出现的java邮件发送,以下是它的使用方式(引入jar包:activation.jar、mail.jar)
package com.lingjuli.servlet;    import java.util.Date;  import java.util.Properties;    import javax.mail.Authenticator;  import javax.mail.BodyPart;  import javax.mail.Message;  import javax.mail.Multipart;  import javax.mail.PasswordAuthentication;  import javax.mail.Session;  import javax.mail.Transport;  import javax.mail.internet.InternetAddress;  import javax.mail.internet.MimeBodyPart;  import javax.mail.internet.MimeMessage;  import javax.mail.internet.MimeMultipart;      public class SendMail {      private static String username = "luo.xxx@163.com";      private static String password = "xxx";      private static String smtpServer = "smtp.163.com";//邮件协议      private static String fromMailAddress = "luo.xxx@163.com";      private static String toMailAddress = "xxx@sina.com";        public static void main(String[] args) throws Exception {          Properties props = new Properties();          props.put("mail.smtp.auth", "true");          props.put("mail.smtp.host", smtpServer);          // 获得邮件会话对象          Session session = Session.getDefaultInstance(props,                  new SmtpAuthenticator(username, password));          /** *************************************************** */          // 创建MIME邮件对象          MimeMessage mimeMessage = new MimeMessage(session);          mimeMessage.setFrom(new InternetAddress(fromMailAddress));// 发件人          mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(                  toMailAddress));// 收件人          mimeMessage.setSubject("主题");          mimeMessage.setSentDate(new Date());// 发送日期          BodyPart mdp = new MimeBodyPart();// 新建一个存放信件内容的BodyPart对象          mdp.setContent("测试java邮件发送", "text/html;charset= GB2312");// 设置发送邮件内容为HTML类型,并为中文编码          Multipart mm = new MimeMultipart();          mm.addBodyPart(mdp);          mimeMessage.setContent(mm);          mimeMessage.saveChanges();          Transport.send(mimeMessage);// 发送邮件        }    }  /**  * Smtp认证  */  class SmtpAuthenticator extends Authenticator {      String username = null;      String password = null;        // SMTP身份验证      public SmtpAuthenticator(String username, String password) {          this.username = username;          this.password = password;      }        public PasswordAuthentication getPasswordAuthentication() {          return new PasswordAuthentication(this.username, this.password);      }    }  



spring mail 

通过spring对java mail的上层封装,以下为使用方式

package com.zwx.utils;    import java.io.File;    import javax.mail.MessagingException;  import javax.mail.internet.MimeMessage;    import org.springframework.mail.javamail.JavaMailSenderImpl;  import org.springframework.mail.javamail.MimeMessageHelper;    public class MailSender {      /*     private static String username = "luo.xxx@163.com";     private static String password = "xxx";     private static String smtpServer = "smtp.163.com";     private static String fromMailAddress = "luo.xxx@163.com";     private static String toMailAddress = "xxx@sina.com";     */      private static PropertiesLoader propertiesLoader = new PropertiesLoader("bdsc-web.properties");//读取配置文件      public static void mailSimple(String toMailSAddress,String subject,String content) {          // 发送器            JavaMailSenderImpl mailSender= new JavaMailSenderImpl();          // 建立邮件消息,发送简单邮件和html邮件的区别          MimeMessage mailMessage = mailSender.createMimeMessage();          // 为防止乱码,添加编码集设置          MimeMessageHelper messageHelper = null;          try {              //发送附件 则 参数为 multipart 为 ture              messageHelper = new MimeMessageHelper(mailMessage,true,"UTF-8");          } catch (MessagingException e1) {              // TODO Auto-generated catch block              e1.printStackTrace();          }          //设定mail server          mailSender.setHost(propertiesLoader.getProperty("mail.smtp.host"));          mailSender.setPort(propertiesLoader.getInteger("mail.smtp.port"));          mailSender.setUsername(propertiesLoader.getProperty("mail.smtp.username"));          mailSender.setPassword(propertiesLoader.getProperty("mail.smtp.password"));          //建立邮件消息          //设置收件人、寄件人          try {              messageHelper.setTo(toMailSAddress);              messageHelper.setFrom(propertiesLoader.getProperty("mail.smtp.username"));              messageHelper.setSubject(subject);              messageHelper.setText(content,true);              //附件内容              messageHelper.addAttachment("附件1", new File("h:/test/abc.pdf"));              messageHelper.addAttachment("附件2", new File("h:/test/qwe.gif"));          } catch (MessagingException e) {              // TODO Auto-generated catch block              e.printStackTrace();          }          //发送邮件          mailSender.send(mailMessage);          System.out.println("邮件发送成功!");                }      public static void main(String[] args) {          try {              MailSender.mailSimple("xxx@sina.com","qwe","qwe");          } catch (Exception e) {              // TODO Auto-generated catch block              e.printStackTrace();          }      }  }  


bdsc-web.properties

[html] view plain copy
  1. #spring mail  
  2. mail.smtp.username = luo.xxx@163.com  
  3. mail.smtp.password = xxx  
  4. mail.smtp.host = smtp.163.com  
  5. mail.smtp.auth = true  
  6. mail.smtp.timeout = 1000  



0 0