- 浏览: 1174044 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (411)
- ASP (6)
- ASP.NET (2)
- CSS (4)
- HTML (11)
- Javascript (34)
- Java (100)
- PHP (1)
- XML (2)
- Flash/Flex/AS (1)
- 编程理论 (6)
- 操作系统 (23)
- 架构与搭建 (13)
- 软件应用 (39)
- 移动开发及应用 (4)
- UI设计 (2)
- 数据库 (23)
- 围棋 (1)
- 闲语茶楼 (6)
- 金融 (1)
- 其他 (3)
- Linux/Unix (38)
- 项目管理 (3)
- cmd (2)
- ssh (3)
- SVN (1)
- 移动开发 (1)
- HTML5 (1)
- jquery (1)
- redis (1)
- nginx (2)
- webservice (1)
- vmware (1)
- ssl (1)
- eclipse (1)
- sqlite (1)
- spring (2)
最新评论
-
cnhome:
Java 8 下:// 编码String asB64 = Ba ...
不要使用sun.misc.BASE64Encoder -
请叫我翠西狗:
那如果我要用this.getServletContext() ...
JSP/Servlet使用代理或路由器映射时获取服务器地址为内网地址 -
nomblouder:
按照别的博客,别名一直是p4merge,导致一直报错comma ...
win与linux下git配置p4merge为合并比较工具的方法 -
linuxzhang:
请问我按你的方法修改了sts-3.7.3.RELEASE中的o ...
Eclipse中setter/getter方法自动添加属性注释 -
yzh__:
求解答。。。
Struts2定义默认拦截器时需要注意
客户给的邮件服务器要SSL,使用Spring的JavaMailSenderImpl,Spring配置如下
<bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host" value="${mail.smtp.host}" /> <property name="username" value="${mail.smtp.username}" /> <property name="password" value="${mail.smtp.password}" /> <property name="port" value="${mail.smtp.port}" /> <property name="javaMailProperties"> <props> <prop key="mail.smtp.timeout">${mail.smtp.timeout}</prop> <prop key="mail.smtp.auth">${mail.smtp.auth}</prop> <prop key="mail.smtp.starttls.enable">${mail.smtp.starttls.enable}</prop> <prop key="mail.smtp.socketFactory.port">${mail.smtp.port}</prop> <prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop> <prop key="mail.smtp.socketFactory.fallback">false</prop> </props> </property> </bean>
mail.properties内容如下
mail.smtp.host=smtp.xyz.com
mail.smtp.port=465
mail.smtp.username=alerts+abc.net
mail.smtp.password=12345678
mail.smtp.auth=true
mail.smtp.starttls.enable=true
mail.smtp.timeout=50000
mail.from=alerts@abc.net
mail.replyTo=alerts@abc.net
发送邮件时得到异常如下
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:419)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:342)
Caused by: javax.mail.MessagingException: Exception reading response;
nested exception is:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1462)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1260)
... 4 more
Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1611)
at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:187)
... 8 more
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:285)
at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:191)
at sun.security.validator.Validator.validate(Validator.java:218)
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:126)
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:209)
... 20 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:174)
at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:238)
at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:280)
... 26 more
Google一下,需要保存安装证书
官方的QA http://java.sun.com/products/javamail/FAQ.html#installcert
Q: When connecting to my mail server over SSL I get an exception like "unable to find valid certification path to requested target".
A: Your server is probably using a test certificate or self-signed certificate instead of a certificate signed by a commercial Certificate Authority. You'll need to install the server's certificate into your trust store. The InstallCert program will help.
在这里 http://blogs.sun.com/andreas/entry/no_more_unable_to_find 有解决方案
用 http://blogs.sun.com/andreas/resource/InstallCert.java 的代码来安装证书
运行 java InstallCert smtp.xyz.com:465
得到jssecacerts文件后复制到jdk1.6.0_14\jre\lib\security目录
然后再发送邮件就OK了
附件是 InstallCert.java
- InstallCert.zip (2.5 KB)
- 下载次数: 160
评论
SSLSocket socket = (SSLSocket)factory.createSocket(host, port);
上面这句话 报 Exception in thread "main" java.net.ConnectException: Connection timed out: connect错误。
发表评论
-
Maven使用mvn命令时跳过test的参数
2015-05-28 11:24 1753方法有两种: 方法1: mvn install -Dsk ... -
Spring中Propagation类的事务属性区别
2014-12-08 14:50 1944PROPAGATION_REQUIRED:支持当前事务,如果 ... -
Spring AOP中pointcut expression表达式解析
2014-08-27 15:39 3427Pointcut 是指那些方法需要被执行"AOP& ... -
用正则表达式替换手机号为星号*的写法
2014-08-11 15:43 10055现在网络越来越关注一些隐私,比如手机号隐藏当中的若干位数字 ... -
java使用相对路径连接sqlite
2014-08-01 15:48 6924在sqlite的连接源码中,可以看到 :resource: ... -
Eclipse中setter/getter方法自动添加属性注释
2014-08-01 12:11 16601这篇文章以前在公司内网发的,到现在也一直有用,发上来分享给有 ... -
memcached-session-manager配置
2014-07-09 18:01 963声明:本篇文章是根据memcach ... -
使用java原生url连接传输protobuf
2014-06-26 18:16 1465protobuf已经出来好多年了,原谅我最近才了解到goo ... -
Tomcat内存、连接数等性能参数设置
2014-02-20 14:37 17141、修改启动时内存参数、并指定JVM时区 (在windows ... -
使用JSP列出所有运行中的线程
2013-07-29 10:06 1050<html> <head> &l ... -
JVM系列五:JVM监测&工具[整理中]
2013-05-10 10:34 1132前几篇篇文章介绍了介绍了JVM的参数设置并给 ... -
JVM系列四:生产环境参数实例及分析【生产环境实例增加中】
2013-05-10 10:32 1261java application项目(非web项目) 改进 ... -
JVM系列三:JVM参数设置、分析
2013-05-10 10:30 1026不管是YGC还是Full GC,GC过程中都 ... -
JVM系列二:GC策略&内存申请、对象衰老
2013-05-10 10:19 1037JVM里的GC(Garbage Collec ... -
JVM系列一:JVM内存组成及分配
2013-05-10 10:14 1096java内存组成介绍:堆(Heap)和非堆(Non-h ... -
jenkins配置权限不对导致无法登陆的重置方法
2013-04-20 20:43 25405找到.jenkins/config.xml文件: 替换为: ... -
Spring3中替换默认拦截器的方法BeanFactoryPostProcessor
2012-08-14 16:51 4059由于Spring默认的静态资源处理器不能满足需求,需要做一些自 ... -
Hessian 权限认证
2012-08-07 11:23 1531Hessian 权限认证 Hessian的一些基本简介已经在上 ... -
利用java 6.0的脚本引擎执行字符串表达式运算
2012-08-06 23:09 1459例子都在这里了:http://www.java2s.com/C ... -
在spring、tomcat中使用多数据源并支持分布式事务管理
2012-08-06 22:10 2631原文:http://zxlaiye.iteye.c ...
相关推荐
在使用JavaMail进行邮件发送时,如果邮件服务器配置了SSL/TLS,我们需要在代码中启用相应的安全设置。 在`SendMail.java`中,我们需要设置以下关键参数: 1. `Properties props`:这是一个属性对象,用来存储连接...
- 当使用加密连接时,需要处理服务器证书验证。JavaMail默认会检查服务器的证书是否由受信任的证书颁发机构签名。如果遇到自签名或不受信任的证书,可能需要自定义`javax.net.ssl.TrustManager`。 7. **示例代码**...
这需要在`Session`配置中启用SSL/TLS,并可能需要提供相应的证书或信任管理器。 9. 邮件附件:`MimeBodyPart`可以用来添加附件,支持常见文件类型,如.txt、.pdf、.jpg等。通过`setDataHandler()`方法设置数据...
2. **配置安全参数**:在创建 Session 时,可以通过设置 properties 来启用 SSL/TLS,并指定证书路径。 五、收邮件与IMAP/POP3 1. **IMAP(Internet Message Access Protocol)**:允许用户从服务器检索邮件,同时...
- 邮件服务器的配置问题,如端口不通、SSL证书不匹配等。 - 发送失败,可能是因为SMTP服务器限制了发送频率,或者用户名密码错误。 - 邮件格式问题,比如正文编码不正确导致乱码,或者附件无法正常打开。 - 安全性...
在实际开发中,根据不同的邮件服务提供商,可能需要调整SSL设置或其他配置,但基本的实现思路是相似的。理解SMTP和SSL的工作原理,以及如何使用Javamail API,将有助于我们更高效地实现邮件功能。
- **证书管理**:如果使用了SSL/TLS加密,确保有正确的证书配置。 - **敏感信息保护**:避免在日志文件中记录敏感信息,如用户名、密码等。 #### 3. 性能优化 - **连接池**:使用连接池管理SMTP连接,减少资源消耗...
开发者需配置服务器证书,并在JavaMail API中启用安全连接。 5. 邮件认证:为了防止垃圾邮件,邮件服务器通常需要用户认证。这可以通过基于用户名和密码的简单认证,或者更复杂的身份验证机制如CRAM-MD5、DIGEST-MD...
- **SSL/TLS安全问题**:对于需要加密的连接,确保已启用SSL或TLS,并正确配置了证书。 9. **异常处理**: 发送邮件过程中可能会遇到各种异常,如MailSendException、AuthenticationFailedException等。需要适当...
9. **配置管理**:邮件服务器需要配置各种参数,如监听端口、认证信息、SSL证书等,这些通常通过配置文件或环境变量来设置。 10. **异常处理**:邮件服务器需处理各种可能出现的错误情况,例如网络中断、邮件格式...
Java版邮件服务器是一种基于Java技术实现的邮件服务系统...- 安全编程,如证书管理、SSL/TLS配置 通过学习和实践,开发者可以构建出自己的Java邮件服务器,满足特定需求,同时也能提升在邮件系统开发方面的专业技能。
本博客介绍基于SSM框架(Spring4.0+SpringMVC+Mybatis)组合的Javamail应用,邮箱的话基于腾讯的QQ邮箱,其实也是Foxmail邮箱 先要了解一下SMTP协议和SSL加密 SMTP:称为简单邮件传输协议(Simple Mail Transfer ...
同时,为了保证数据安全,服务器通信应使用SSL/TLS加密,这需要配置服务器证书和密钥。 此外,服务器端还需要包含以下关键组件: 1. **用户认证与授权**:服务器必须能验证用户的登录凭证,并对用户进行权限控制,...
在配置`Session`时,可以指定是否启用SSL/TLS,以及提供相应的证书信息。 8. **处理附件**:使用`MimeBodyPart`和`MimeMultipart`可以添加附件到邮件。`MimeBodyPart`表示单个部分,可以是文本或文件,`...
通过以上步骤,你将能够成功地配置Apache James邮件服务器,并使用JavaMail API创建和管理邮件。理解这些知识点对于开发和维护企业级邮件系统至关重要。然而,实际操作中可能还会遇到其他问题,如权限配置、防火墙...
在搭建JES时,你需要熟悉这些协议的工作原理,以便正确配置服务器。 1. **SMTP服务器配置**:SMTP是发送邮件的协议。JES作为SMTP服务器,需要配置监听端口、域名称、身份验证机制(如PLAIN、LOGIN或CRAM-MD5)等。...
标题中的“通过TLS发送邮件”指的是使用Transport Layer Security (TLS) ...同时,邮件服务器应持有有效的SSL/TLS证书,以便进行身份验证。了解这些知识点对于任何需要通过编程方式发送安全邮件的开发者都非常重要。
- 进行SSL测试时,需要配置相应的加密包,并在`jmeter.properties`文件中注册SSL提供者,以便更好地管理证书。 通过以上概述可以看出,JMeter是一款功能强大的性能测试工具,不仅支持多种资源的压力测试,还能进行...