Java 发送邮箱(一)

  |   0 评论   |   0 浏览

Java 发送邮箱(一)

java 官方封装了发送邮件的协议,但是没有放到 jdk 中,所以我们如果想实现 发送邮箱的功能,需要加入依赖。

笔者这里用的是 maven

 <dependency>
      <groupId>com.sun.mail</groupId>
      <artifactId>javax.mail</artifactId>
      <version>1.6.2</version>
    </dependency>

废话不多说,直接上代码

public class EmailTest {

    public static void main(String[] args) throws MessagingException, UnsupportedEncodingException {
        
        //进行配置
        Properties props = new Properties();
        props.setProperty("mail.smtp.host","smtp.163.com");     //配置 SMTP 服务器地址
        props.setProperty("mail.smtp.port", "25");              //请求的端口
        props.setProperty("mail.transport.protocol","smtp");    //请求的协议
        props.setProperty("mail.smtp.auth","true");             //需要认证请求
        props.setProperty("mail.smtp.ssl.enable", "true");      // 开启ssl
        
        //创建一个程序与邮件服务器会话对象 Session
        Session session = Session.getDefaultInstance(props);
        //开启Debug 模式
        session.setDebug(true);
        
        //通过 session 得到transport 对象
        Transport ts = session.getTransport();
        
        //使用邮箱的用户名和密码连接上邮件服务器
        ts.connect("smtp.163.com","************@163.com","*************");
        
        //创建邮件
        Message message = createSimpleMail(session);
        
        //发送邮件
        ts.sendMessage(message,message.getAllRecipients());
        
        //关闭邮件
        ts.close();
    }
    
    /**
     *  生成Message对象
     */
    private static Message createSimpleMail(Session session) throws MessagingException, UnsupportedEncodingException {

        MimeMessage message = new MimeMessage(session);
        //指定邮件的发件人
        message.setFrom(new InternetAddress("************@163.com"));
        //指定邮件的收件人的邮箱以及昵称
        message.setRecipient(Message.RecipientType.TO,new InternetAddress("**********@qq.com","test"));
        //邮件的标题
        message.setSubject("测试");
        //邮箱的内容
        message.setText("你好!");
        return message;
    }

}

笔者这里使用的是网易邮箱服务。这里有一个地方要注意

网易的客户端授权码默认是关闭的,需要登陆邮箱手动设置成开启状态,如果不设置的话,会抛出认证失败的异常


标题:Java 发送邮箱(一)
作者:zh847707713
地址:http://lovehao.cn/articles/2019/06/21/1561081820668.html