- 浏览: 184535 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
yu505656166:
这个问题是怎么解决的啊?
spring mail 发送邮件,没有主题,没有收件人,显示乱码问题 -
dextersmake:
我的配置和你的差不多,调了有一些效果,但是还不是很满意。
YARN内存使用优化配置 -
kjkhi:
dxb350352 写道怎么用啊,运行完了也不知道取值的方法 ...
Apache POI组件使用eventusermodel模式读取Excel文档内容 -
dxb350352:
怎么用啊,运行完了也不知道取值的方法
Apache POI组件使用eventusermodel模式读取Excel文档内容 -
wanshijian:
相同问题,解决了!
使用cxf的wsdl2java是遇到的问题
Spring框架提供了JavaMailSender接口及其实现类JavaMailSenderImpl,基于这个类可以更加方便实现发送邮件功能。
在web工程中,可以把JavaMailSender交由Spring IOC管理。如下面的配置:
<bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="defaultEncoding" value="${email.encoding}"></property> <property name="host" value="${email.host}"></property> <property name="username" value="${email.username}"></property> <property name="password" value="${email.password}"></property> <property name="protocol" value="${email.protocal}"></property> <property name="javaMailProperties"> <props> <!-- 让服务器检验用户密码是否正确 --> <prop key="mail.smtp.auth">true</prop> <prop key="mail.smtp.timeout">25000</prop> <prop key="mail.debug">true</prop> </props> </property> </bean>
使用时,只需在Spring容器中获取到JavaMailSenderImpl实例,调用JavaMailSender.send()方法,即可实现发送邮件的功能。
由于,公司使用的网络不能直接访问外网,而发送邮件的却是对外的。所以需要设置代理服务器。而java.mail是不知道http代理的,只能通过socks V4 或者 V5代理发送邮件。官方原文:
Q: How do I configure JavaMail to work through my proxy server?
A: JavaMail does not currently support accessing mail servers through a web proxy server. One of the major reasons for using a proxy server is to allow HTTP requests from within a corporate network to pass through a corporate firewall. The firewall will typically block most access to the Internet, but will allow requests from the proxy server to pass through. In addition, a mail server inside the corporate network will perform a similar function for email, accepting messages via SMTP and forwarding them to their ultimate destination on the Internet, and accepting incoming messages and sending them to the appropriate internal mail server.
If your proxy server supports the SOCKS V4 or V5 protocol (http://www.socks.nec.com/aboutsocks.html, RFC1928) and allows anonymous connections, and you're using JDK 1.5 or newer and JavaMail 1.4.5 or newer, you can configure a SOCKS proxy on a per-session, per-protocol basis by setting the "mail.smtp.socks.host" property as described in the javadocs for the com.sun.mail.smtp package. Similar properties exist for the "imap" and "pop3" protocols.
If you're using older versions of the JDK or JavaMail, you can tell the Java runtime to direct all TCP socket connections to the SOCKS server. See the Networking Properties guide for the latest documentation of the socksProxyHost and socksProxyPort properties. These are system-level properties, not JavaMail session properties. They can be set from the command line when the application is invoked, for example: java -DsocksProxyHost=myproxy .... This facility can be used to direct the SMTP, IMAP, and POP3 communication from JavaMail to the SOCKS proxy server. Note that setting these properties directs all TCP sockets to the SOCKS proxy, which may have negative impact on other aspects of your application.
Without such a SOCKS server, if you want to use JavaMail to directly access mail servers outside the firewall, the firewall will need to be configured to allow such access. JavaMail does not support access through a HTTP proxy web server.
A: JavaMail does not currently support accessing mail servers through a web proxy server. One of the major reasons for using a proxy server is to allow HTTP requests from within a corporate network to pass through a corporate firewall. The firewall will typically block most access to the Internet, but will allow requests from the proxy server to pass through. In addition, a mail server inside the corporate network will perform a similar function for email, accepting messages via SMTP and forwarding them to their ultimate destination on the Internet, and accepting incoming messages and sending them to the appropriate internal mail server.
If your proxy server supports the SOCKS V4 or V5 protocol (http://www.socks.nec.com/aboutsocks.html, RFC1928) and allows anonymous connections, and you're using JDK 1.5 or newer and JavaMail 1.4.5 or newer, you can configure a SOCKS proxy on a per-session, per-protocol basis by setting the "mail.smtp.socks.host" property as described in the javadocs for the com.sun.mail.smtp package. Similar properties exist for the "imap" and "pop3" protocols.
If you're using older versions of the JDK or JavaMail, you can tell the Java runtime to direct all TCP socket connections to the SOCKS server. See the Networking Properties guide for the latest documentation of the socksProxyHost and socksProxyPort properties. These are system-level properties, not JavaMail session properties. They can be set from the command line when the application is invoked, for example: java -DsocksProxyHost=myproxy .... This facility can be used to direct the SMTP, IMAP, and POP3 communication from JavaMail to the SOCKS proxy server. Note that setting these properties directs all TCP sockets to the SOCKS proxy, which may have negative impact on other aspects of your application.
Without such a SOCKS server, if you want to use JavaMail to directly access mail servers outside the firewall, the firewall will need to be configured to allow such access. JavaMail does not support access through a HTTP proxy web server.
所以在调用send()方法发送邮件之前,必须设置代理服务器。
这里用两种方式实现代理,1、设置jvm的参数,2、在程序中通过Properties实现。使用的参数可参照官网文档:Networking Properties,本文主要与大家交流第二种方式。
在web 启动是,加载一个自定义的Servlet,该Servlet就是实现了,设置代理服务器的功能。如部分代码:
System.getProperties().put("proxySet", true); System.getProperties().put("http.proxyHost", Config.getProperties("http.proxyHost")); System.getProperties().put("http.proxyPort", Config.getProperties("http.proxyPort")); System.getProperties().put("socksProxySet", true); System.getProperties().put("socksProxyHost", Config.getProperties("http.proxyHost")); System.getProperties().put("socksProxyPort", Config.getProperties("http.proxyPort"));
同样,在java mail的官方文档中也有提到,如果使用的是jdk 1.5以上和java.mail 1.4.5,可以通过javaMailProperties配置,更多配置项,参考 com.sun.mail.smtp package。 <!-- javaMailSender -->
<bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="defaultEncoding" value="${email.encoding}"></property> <property name="host" value="${email.host}"></property> <property name="username" value="${email.username}"></property> <property name="password" value="${email.password}"></property> <property name="protocol" value="${email.protocal}"></property> <property name="javaMailProperties"> <props> <!-- 让服务器检验用户密码是否正确 --> <prop key="mail.smtp.auth">true</prop> <prop key="mail.smtp.timeout">25000</prop> <prop key="mail.debug">true</prop> <prop key="mail.smtp.ssl.enable">true</prop> <prop key="mail.smtp.socks.host">cmproxy.gmcc.net</prop> <prop key="mail.smtp.socks.port">8081</prop> <prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop> </props> </property> </bean>
发表评论
-
大数据处理--倒排索引
2014-06-28 14:08 4391简介 倒排索引源 ... -
大数据处理--BitSet
2014-06-28 11:01 1248java.util.BitSet可以按位存储。计算机中一个字 ... -
大数据处理--BloomFilter
2014-06-28 10:58 913BloomFilter——大规 ... -
hadoop 2.x升级异常
2014-06-19 11:54 22811、通过FileSystem这个API去访问hdfs上面的 ... -
Windows 编译Hadoop的Eclipse插件
2013-07-24 00:53 0http://www.cnblogs.com/fly ... -
log4j指定配置文件路径
2013-07-09 11:15 1928在默认情况下 log4j 会从WEB-INF/cl ... -
使用CXF发布和调用webservice
2013-05-08 16:14 1398依赖的JAR cxf-2.2.10.jar je ... -
Filter、Servlet、Listener区别与联系
2013-04-10 17:41 4182J2EE开发中,经常会使用到Filter、Servlet、L ... -
Apache POI组件使用eventusermodel模式读取Excel文档内容
2013-03-18 17:39 9112package com.test; import ja ... -
CXF之JAX-WS(转)
2012-12-18 17:31 1983CXF详解二 CXF之JAX-WS JAX-WS规范是一组 ... -
分析tomcat假死现象的过程
2012-10-15 15:50 0前段时间在公司遇到一个tomcat运行一段时间后(半个月左右 ... -
spring mail 通过HTTP代理发送邮件
2012-09-24 16:22 6657spring框架中org.spr ... -
多线程实现发送邮件功能
2012-09-14 18:44 11174通过Internet发送邮件,可能会在网络传输上面使用较多的 ... -
plupload 上传组件,后台用java实现
2012-09-06 17:21 11478Plupload 是一个Web浏览器上的界面友好的文件上传模 ... -
POI读取大数据量的Excel文件
2012-09-06 11:58 15039POI读取Excel文件有两种方式,一种是使用usermod ... -
UML类图
2012-08-02 16:35 2042UML类图关系大全 1、关联双向关联:C1-C2:指 ... -
使用cxf的wsdl2java是遇到的问题
2012-03-13 10:50 3893对与同一个wsdl文件,我尝试过使用axis2是可以正常转过来 ... -
spring mail 发送邮件,没有主题,没有收件人,显示乱码问题
2012-03-06 14:02 4687使用spring框架风中的javamail发送邮件,遇到了一些 ... -
J2EE使用ireport做导出PDF操作
2012-03-02 17:21 2683首先,在lib中,加入一下jar: jasperreport ... -
Struts使用plupload实现多文件上传
2012-03-02 17:06 2555plupload,一个挺不错js框架。到时其官方demo中只是 ...
相关推荐
标题中的“spring mail通过代理发送邮件”指的是使用Spring框架中的JavaMailSender接口和相关的支持类,通过设置代理服务器来发送电子邮件。在某些网络环境中,直接访问SMTP服务器可能会受到限制,这时就需要通过...
文档详细描述,linux不通外网的情况下,通过在另一台通外网的服务器搭建socks5代理服务,不通外网的服务器通过socks5代理,成功向外网发送邮件的功能。
修改mail源码 支持socks代理 程序中需手动加入参数 static { System.getProperties().setProperty("netease.mail.socks.proxy.url", "代理服务器url"); System.getProperties().setProperty("netease.mail.socks...
socksapp -vc 通过SOCKS代理向pop.mail.yahoo.com等服务器发送一个用户登录请求,并取得该POP3服务器的响应。该程序演示了如何使得自己的网络程序通透过SOCKS防火墙而向远程服务器通信。 要求运行socksapp的主机...
- **详细教程**:http://www.sslm2008.cn/thread-2098-1-1.html 提供了更加详细的SOCKS代理使用教程,包括图文并茂的说明。 #### 七、总结 通过本文的介绍,我们不仅了解了如何使用SocksCapV2.38软件配置SOCKS代理...
Socks5进程代理DLL,配套调用表,在压缩包里面
Socks5是一种网络协议,它允许应用程序通过代理服务器进行网络通信。与HTTP代理不同,Socks5协议不关心应用层的具体协议,如FTP、HTTP或SMTP等,因此具有更广泛的适用性。Socks5支持多种认证方式,并提供TCP连接,使...
SOCKS5是一种广泛使用的互联网协议,用于在客户端和目标服务器之间建立安全的隧道,以实现代理服务。它支持多种网络协议,如TCP和UDP,同时提供了身份验证、IPv4、IPv6以及域名支持。SOCKS5代理协议主要分为以下几个...
基于Netty框架的Socks5代理服务器 内容概要 本项目是一个基于Netty框架实现的Socks5代理服务器,支持Socks5协议的代理功能。项目包含了多个模块,涵盖了从客户端连接处理到服务器端代理转发的完整流程。主要功能...
内网安全是信息技术领域中的一个重要话题,特别是在企业网络环境中,域横向内网漫游Socks代理隧道技术是一种解决内网间通信难题的有效方法。本文将详细介绍相关知识点,并通过实际案例来展示如何应用这些技术。 ...
chrome单独设置http与socks代理的方法(不使用操作系统代理)
hpts(http-proxy-to-socks) 一个nodejs客户端将socks代理转换为http代理
代理IP检测工具会通过发送测试请求并记录响应时间来计算平均延迟。 优亦云代理IP工具作为一款专业的检测软件,它可能具备以下功能: 1. **批量检测**:允许用户一次性输入大量代理IP,工具会逐一测试它们的连通性...
HTTP代理主要处理Web浏览器的请求,而SOCKS5代理则是一个更通用的协议,适用于多种网络应用,如FTP、邮件客户端等。代理服务器在此扮演的角色是中转站,允许用户通过代理服务器访问互联网,从而提高匿名性或解决网络...
SOCKS5是一种网络协议,它允许客户端通过代理服务器与任意IP地址的远程服务器进行通信。在C#中实现一个SOCKS5代理服务器涉及到多个关键概念和技术,这些包括网络编程、套接字(Sockets)、协议解析以及多线程等。...
基于邮件交换(MX)与SMTP协议发送邮件,可以无须SMTP服务器中转直接将E-Mail电子邮件发送到对方邮箱,代码中提供了网卡信息获取类,可以获取本机IP地址、子网掩码、DNS、Wins、网卡MAC地址等相关信息;还提供了SMTP协议...
《基于Linux操作系统的Socks代理服务》 在现代网络环境中,随着互联网的广泛使用,网络管理变得日益重要。...对于希望提升网络管理效率和安全性的组织来说,了解并掌握Socks代理服务的使用和配置至关重要。