使用java利用163邮箱发送邮件简单示例

时间:2024-05-20 20:15:38

此文章只是基础代码,需要自己深层次的封装,适用于初次开发工作者

1代码 

    private static final String from="";//163邮件的账号
    private static final String host = "smtp.163.com";
    private static final String password = "";//163邮箱的授权码,下面会详细描述怎么开通【注意,不是密码】
    public static boolean sendMail(String to, String content){
        Properties prop = new Properties();
        prop.setProperty("mail.host", host);
        prop.setProperty("mail.smtp.auth", "true");
        prop.setProperty("mail.transport.protocol", "smtp");
       /* prop.put("mail.smtp.ssl.enable", true);*/
        // 开启SSL加密,否则会失败
        try {
            MailSSLSocketFactory sf = new MailSSLSocketFactory();
            sf.setTrustAllHosts(true);

//这一句必须加上,不然会报错,我的博客中有提到,不知道的,可以去看 :https://blog.****.net/QinTao9961220/article/details/108917422
            prop.put("mail.smtp.ssl.enable", "true");
            prop.put("mail.smtp.ssl.socketFactory", sf);
            Session session = Session.getInstance(prop);
           /* prop.put("mail.smtp.ssl.enable", true);*/
            Transport ts = session.getTransport();
            // 连接邮件服务器:邮箱类型,帐号,授权码代替密码(更安全)
            ts.connect(host,from, password);//后面的字符是授权码,用qq密码反正我是失败了(用自己的,别用我的,这个号是我瞎编的,为了。。。。)
            // 创建邮件对象
            MimeMessage message = new MimeMessage(session);
            // 指明邮件的发件人
            message.setFrom(new InternetAddress(from));
            message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
            // 邮件的标题
            message.setSubject("test");
            // 邮件的文本内容
            /*int code=100000+(int)(899999*Math.random());
            System.out.println(code);*/
            message.setContent(content, "text/html;charset=UTF-8");
            // 发送邮件
            ts.sendMessage(message, message.getAllRecipients());
            ts.close();
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }

解释一下方法中的参数含义:

String content:发送的内容,如果是验证码,如下图代码:

 

private String codeContent(int code){
        return "【test】验证码是:"+code+"<br>您正在使用注册功能,该验证码仅用于注册验证,请勿泄露给他人使用。5分钟内有效!<br>";
    }

 public static int getCode(){
        return 100000+(int)(899999*Math.random());
    }

 

2.怎么开通163邮箱发邮件功能

2.1注册163邮箱,然后登陆进去

 

2.2具体开通

2.2.1点击设置后,如下操作:

使用java利用163邮箱发送邮件简单示例

 

2.2.2开启IMAP/SMTP服务

使用java利用163邮箱发送邮件简单示例

 

2.2.3新增授权码【上述开通时,就会有一个默认的授权码,你可以用,一定要记住,如果没有记住,如下图操作】

使用java利用163邮箱发送邮件简单示例

 

到这里就完事了,把授权码复制到代码中,可以成功发送邮件,亲测有效

OK!问题解决!不会的给我私信!
觉得有帮助的可以关注一波!经常分享编程踩坑经验!