JavaSpring使用自定义socket实现发送电子邮件
由于一个非常特定的SOCKS5代理实现,我需要使用一个自定义的Socket
实现才能访问我的邮件服务器。(使用JWT进行0x80身份验证)
我正在使用SpringBootStarter邮件尝试发送电子邮件
我创建了一个ConnectivitySocketFactory
(extendsjavax.net.SocketFactory
),它返回我的自定义socket实现(extendsjava.net.Socket
),并将其包含在JavaMailSenderImpl
的配置中,如下所示:
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
Properties props = mailSender.getJavaMailProperties();
props.put("mail.smtp.socketFactory", new ConnectivitySocketFactory());
mailSender.setJavaMailProperties(props);
然而,当使用mailSender.send()
时,我可以看到我的SocketFactory
从未被使用过。然后,由于(预期的)UnknownHostException
,代码失败,因为主机只能通过该代理访问
我的问题是:为什么不使用提供的SocketFactory
?在Spring Boot中,是否有更好的方法使用带有自定义0x80身份验证的SOCKS5代理发送电子邮件
共 (0) 个答案