Javamail实现office365进行邮件发送

我这边遇到的问题:javax.mail.AuthenticationFailedException: 535 5.7.3 Authentication unsuccessful [BJBPR01CA017.CHNPR01.prod.partner.outlook.cn]。一顿问题查找以后,最终得出结论 如下:

            Properties props = new Properties();  
            props.setProperty("mail.debug", "true");  //false  开关debug调试  
            props.setProperty("mail.smtp.auth", "true");   // 发送服务器需要身份验证

            //mail.host这个很重要:如果是国内认证的就用smtp.partner.outlook.cn;如果是美国直接认证的就用smtp.office365.com
            props.setProperty("mail.host", "smtp.partner.outlook.cn");  // 设置邮件服务器主机名  
            props.setProperty("mail.transport.protocol", "smtp");   // 发送邮件协议名称  
            props.setProperty("mail.smtp.port", "587");
            props.put("mail.smtp.starttls.enable", "true");

代码片段亲测可用:

//单文本邮件发送
try{
			Properties props = new Properties();  
	        // 开启debug调试  
	        props.setProperty("mail.debug", "true");  //false
	        // 发送服务器需要身份验证  
	        props.setProperty("mail.smtp.auth", "true");  
	        // 设置邮件服务器主机名  
	        props.setProperty("mail.host", "smtp.partner.outlook.cn");  
	        // 发送邮件协议名称  
	        props.setProperty("mail.transport.protocol", "smtp");  
	        props.setProperty("mail.smtp.port", "587");
	        props.put("mail.smtp.starttls.enable", "true");
	        
	        // 设置环境信息  
	        Session session = Session.getInstance(props);  
	          
	        // 创建邮件对象  
	        Message msg = new MimeMessage(session);  
	        msg.setSubject("subject");  
	        // 设置邮件内容  
	        msg.setText("text");  
	        // 设置发件人  
	        msg.setFrom(new InternetAddress("username"));  
	          
	        Transport transport = session.getTransport();  
	        // 连接邮件服务器  
	        transport.connect("username", "password");  
	        // 发送邮件  
	        transport.sendMessage(msg, new Address[]{new InternetAddress(mailInfo.getStr("to"))});  
	        // 关闭连接  
	        transport.close();  
    }catch( Exception e ){
			e.printStackTrace();
	}

 

你可能感兴趣的:(Javamail实现office365进行邮件发送)