zoukankan      html  css  js  c++  java
  • javax.mail.AuthenticationFailedException: 535 authentication failed

    该异常为授权码的问题:授权码不是密码,而是代替密码的一组独立密码,可以理解为第二把开启邮箱的钥匙。第一次获取需要授权吗,手机验证。

    package com.common.demo;
    
    import java.security.GeneralSecurityException;
    import java.util.Properties;
    import javax.mail.Authenticator;
    import javax.mail.Message;
    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;
    import com.sun.mail.util.MailSSLSocketFactory;
    
    public class SendEmail {
    
        public static void main(String[] args) throws GeneralSecurityException, InterruptedException {
    
            // 收件人电子邮箱
            String to = "abcdefg@qq.com";
    
            // 发件人电子邮箱
            String from = "abcde@qq.com";
    
            // 指定发送邮件的主机为 smtp.qq.com,QQ 邮件服务器
            String host = "smtp.qq.com";
    
            // 获取系统属性
            Properties properties = System.getProperties();
    
            // 设置邮件服务器
            properties.setProperty("mail.smtp.host", host);
    
            properties.put("mail.smtp.auth", "true");
            MailSSLSocketFactory sf = new MailSSLSocketFactory();
            sf.setTrustAllHosts(true);
            properties.put("mail.smtp.ssl.enable", "true");
            properties.put("mail.smtp.ssl.socketFactory", sf);
            // 获取默认session对象
            Session session = Session.getDefaultInstance(properties, new Authenticator() {
                public PasswordAuthentication getPasswordAuthentication() {
                    // 发件人邮件用户名、密码(密码为QQ邮箱授权码,并非登录密码)
                    return new PasswordAuthentication("abcde@qq.com", "ymylumkcbcie");
                }
            });
    
            try {
                // 创建默认的 MimeMessage 对象
                MimeMessage message = new MimeMessage(session);
    
                // Set From: 头部头字段
                message.setFrom(new InternetAddress(from));
    
                // Set To: 头部头字段
                message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
    
                // Set Subject: 头部头字段
                message.setSubject("This is a Mail experiment!");
    
                // 设置消息体
                message.setText("This is actual message,this is a java send mail demo");
    
                // 发送消息
                Transport.send(message);
                System.out.println("Sent message successfully....from runoob.com");
            } catch (MessagingException mex) {
                mex.printStackTrace();
            }
        }
    }
  • 相关阅读:
    sfs2x 连接 mongodb
    java websocket
    webstorm 4.0 注册码
    解决 sfs2 admin tool 找不到扩展
    window 注册表五大类
    opengl 学习第二日
    java google Protobuf
    扩展 java sencha touch PhonegapPlugin
    sencha touch2 kryonet socket phonegap 通信 作者:围城
    sencha touch2 layout 笔记
  • 原文地址:https://www.cnblogs.com/wanghaichao/p/9360973.html
Copyright © 2011-2022 走看看