背景
一般来说,应用系统都需要发送邮件,提供一个认证的邮箱帐号和密码是很常见的。但是,碰到一个特殊情况,客户方是内网直连邮箱服务器的,不需要通过帐号密码认证发送邮件,这样的话,理论上将 mail.smtp.auth 属性配置为 false 就可以了。
测试发现这个技术点还有个小坑,本文将记录下这个小问题,以备将来查看。
mail.smtp.auth 的作用
mail.smtp.auth 是控制邮件发送是是否需要进行登录认证的:
true 表示需要身份验证
false 表示不需要身份验证
通过 JavaMailSenderImpl 的 setJavaMailProperties 方法来设置该属性。
两种创建实例方式
JavaMailSenderImpl 的创建方式有两种。
第一种,Spring 配置方式:
class="org.springframework.mail.javamail.JavaMailSenderImpl">
false
${mail.timeout}
第二种,直接创建对象:
JavaMailSenderImpl mailSenderImpl = new JavaMailSenderImpl()
Properties prop = new Properties();
prop.put("mail.smtp.auth","false");
prop.put("mail.smtp.timeout","5000");
mailSen