spring mail 通过HTTP代理发送邮件
? ? ? spring框架中org.springframework.mail.javamail这包实际上是对java.mail做而二次封装。发送邮件依然通过javamail实现。
? ? ? 而在官方文档中说明,javamail是不可以通过http代理发送邮件的。只能通过socks V4或者V5连接网络发送邮件。
? ? ? 目前的环境是,内网机器能过某个http代理连接网络上网。但是却没有提供socks代理服务器。也就是说,javamail直接通过这个代理服务器是不可能实现发送邮件功能的。
? ? ? ?解决方案:
? ? ? 使用Httport这个二次代理软件,把远程smtp服务器映射到本机端口。然后设置javamail通过这个映射端口发送邮件。如smtp服务器映射端口为9025,则配置javamail的smtp服务器为:localhost:9025,则可以在内网只有http代理服务器的环境下实现发送邮件的功能。
? ? ? ? ? 示例代码:
? ? ? ?JavaMailSender的配置:
?
?
?