java发送邮件的简单实例

来源:互联网 发布:java开发地图定位 编辑:程序博客网 时间:2024/06/07 18:54

JAVA MAIL是利用现有的邮件账户发送邮件的工具,比如说,我在网易注册一个邮箱账户,通过JAVA Mail的操控,我可以不亲自登录网易邮箱,让程序自动的使用网易邮箱发送邮件。这一机制被广泛的用在注册激活和垃圾邮件的发送等方面。

本次邮件发送的实例采用的是SMTP协议,SMTP(Simple Mail Transfer Protocal)称为简单邮件传输协议,目标是向用户提供高效、可靠的邮件传输。工作在两种情况下:一是电子邮件从客户机传输到服务器;二是从某一个服务器传输到另一个服务器。 SMTP是个请求/响应协议,它监听25号端口,用于接收用户的邮件请求,并与远端邮件服务器建立SMTP连接。

JavaMail用到的jar包,一共3个。下载之后要放到libs目录下,然后右击工程,选择Builder Path–》Configure Build Path,Libraries,Add JARs,选择工程目录下的libs下的jar包。

所需jar包下载地址:http://pan.baidu.com/s/1pKQvzAz 密码:d0yc

邮件发送代码

package utils;import java.util.Date;import java.util.Properties;import java.util.UUID;import javax.mail.Authenticator;import javax.mail.MessagingException;import javax.mail.PasswordAuthentication;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;public class EmailTest {     public static void main(String[] args) throws MessagingException {            //创建一封邮件            //用于连接邮件服务器的参数配置(发送邮件时才需要用到)            Properties properties = new Properties();            // 创建信件服务器              properties.put("mail.smtp.host", "smtp.163.com");//主机host,跟邮件发送者必须一致            properties.put("mail.smtp.auth", "true"); // 通过验证,也就是用户名和密码的验证,必须要有这一条             properties.put("mail.smtp.port", 465);//加密服务端口465//          properties.put("mail.smtp.ssl.enable", true);            // 发送邮件协议名称              properties.setProperty("mail.transport.protocol", "smtp");              properties.put("mail.smtp.ssl.enable", "true");//加密            Session session = Session.getInstance(properties, new Authenticator() {                @Override                protected PasswordAuthentication getPasswordAuthentication(){                    //登陆邮箱,密码                    return new PasswordAuthentication("user1@163.com","password1");                }            });//          Session session = Session.getInstance(properties);              //根据参数配置,创建回话对象(为了发送邮件准备的)            //Session session = Session.getDefaultInstance(properties);            //debug            session.setDebug(true);            //创建邮件对象            MimeMessage message = new MimeMessage(session);            //邮件几个必须的:发件人,收件人,邮件主题,邮件内容            try {                //1、from :发件人                //      其中 InternetAddress 的三个参数分别为: 邮箱, 显示的昵称(只用于显示, 没有特别的要求), 昵称的字符集编码                //    真正要发送时, 邮箱必须是真实有效的邮箱。                 message.setFrom(new InternetAddress("user1@163.com"));                //2、TO :收件人                //MimeMessage.RecipientType.TO  直接发送人                //MimeMessage.RecipientType.CC  抄送人(可选)                //MimeMessage.RecipientType.BCC  秘密发送人(可选)                message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress("user2@163.com"));                //3、Suject :邮件主题                message.setSubject("邮箱验证","UTF-8");                //邮件内容                 ///邮件的内容                //4、Content :邮件正文(可以使用html标签)                message.setContent("Java邮箱测试", "text/html;charset=UTF-8");                //5、设置显示的发件时间                message.setSentDate(new Date());                //6、保存前面设置的                message.saveChanges();                //7、发送                Transport.send(message);                System.out.println("邮件已经发送完毕");            } catch (MessagingException e) {                e.printStackTrace();            }     }}