使用javamail发邮件
使用javamail发邮件。 javamail是java发邮件的常用工具。方便实用。 1、首先使用maven工程,需要引入对javamail的依赖,取个最新稳定版本: javax.mail mail 1.4.5 2、构造一个Session。所谓Session,可以理解为对SMTP服务器的配置。如果发邮件的全部都是一个配置,这个是可以单例的。 Properties props = new Properties(); props.put("mail.smtp.host", "smtp.163.com");//smtp服务器 props.put("mail.smtp.auth", "true");//是否需要用户名密码鉴权 props.put("mail.transport.protocol", "smtp");//协议名称 props.put("mail.smtp.socketFactory.port", 25); //服务器端口 props.put("mail.smtp.starttls.enable", "true"); //如果是ssl端口,需要加这个属性。 //创建Session。这个取一次就好了, Session session = Session.getInstance(props, new Authenticator() //如果你只有一个发送邮箱,在这里指定就好了,如果你有多个用户名密码,也可以在正式发邮件的时候指定。 { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("zhaoyan", "zhaoyanblog.com");//用户名和密码, } }); 3、获取一个连接发送邮件: Transport transport = null; try { transport = session.getTransport("smtp"); //这里是不能单例使用的,可以看Transport的实现类SMTPTransport, //有几个成员是:private MimeMessage message; private Address[] addresses; private SMTPOutputStream dataStream; 说明每次发邮件都会存这些东西的,这个类是线程不安全的。 transport.connect(); //如果session里没有指定用户名密码,这里可以使用transport.connect("username","password"); MimeMessage message = createMessage();//构造邮件内容 transport.sendMessage(message, new InternetAddress[]{new InternetAddress("zhaoyan@zhaoyanblog.com")}); //如果你的message里指定了接收方,这里也可以写transport.sendMessage(message); } finally { transport.close(); } 4、发送不同类型的短信 ...