有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案