使用javamail新浪邮箱发送遇到的问题(已解决)

时间:2022-01-23 18:12:01

打印的日志为:250 ok queue id 361458395651

同一段代码163邮箱发送成功了,新浪貌似是发送成功了,其实还是发送失败的邮件,原代码如下

Properties props = new Properties();
		props.setProperty("mail.transport.protocol", "smtp");
		props.put("mail.smtp.auth", "true");
		
		// 这是一个继承了Authenticator抽象类的实现类,这是另外一种验证密码的方式
		//Authenticator authenticator = new MailAuthenticator("w_c_xxx@sina.com", "password");
//		Session session = Session.getInstance(props,authenticator);
		Session session = Session.getInstance(props);
		// 这里设置可以查看打印日志
		session.setDebug(true);
		
		Message message = new MimeMessage(session);
		// 新浪发送邮件必须要有主题哦,否则永远无法发送成功!
		//message.setSubject("打个招呼哦22");
		message.setText("你好啊!");
		// 现在这里发送人必须与认证人一致,否则报错
		message.setFrom(new InternetAddress("w_c_xxx@sina.com"));
		//message.setRecipient(RecipientType.TO, new InternetAddress("w_c_xxx@163.com"));
		
		//Transport.send(message);
		Transport transport = session.getTransport();
		transport.connect("smtp.sina.com", 25, "w_c_xxx@sina.com", "xxxxpassword");
		transport.sendMessage(message, new Address[]{new InternetAddress("接收人邮箱@163.com")});
		transport.close();

实际上上面的注解上也写了,使用javamail用新浪mail发送邮件的时候必须加上主题,否则无法发送成功,甚至没有记录。

后面将主题注解打开后发送成功返回的结果为:250 ok queue id 43710132099

可以看到,其实这种情况发送结果失败或成功都是一样的,而实际上是没有subject的邮件是发送失败的。