今天写一个Javamail的小测试程序用于测试带有Auth的SMTP发信。其中Javamail是需要用到Properties来传递参数的,如mail.smtp.host,mail.smtp.auth。正是这个mail.smtp.auth把我搞的够惨,因为当发信的时候系统总是提示说auth is required,但是我设置了那个属性是true啊。但是这里的关键在于类型,我是这样设置的:
Properties props = new Properties();
props.put(“mail.smtp.auth”, true);
思维非常习惯的就是这样来设置属性,但是后来发觉因为设置成props.put(“mail.smtp.auth”, “true“);也就是字符串类型。也就是Java规范中可能是规定了属性值的设置类型应该是字符串而不是其它类型。这里看见属性的取值是true就自然的用了true(布尔类型)。有点思维定式了。或者说对于Java属性类的应用还不熟悉。