- 浏览: 1466688 次
- 性别:
- 来自: 青岛人在北京
文章分类
最新评论
-
yhxf_ie:
azheng270 写道 永远是0知道答案了, inser ...
使用MySQL的LAST_INSERT_ID -
yhxf_ie:
insert了还是0... 可能还要设置些什么?
使用MySQL的LAST_INSERT_ID -
一如年少:
123123
Flex使用ribbit.com的服务给手机发送短信SMS -
pointdew:
poincare 写道您好,请教一个问题,如果我的 swf 文 ...
Flex:使用FlexPaper显示PDF文档 -
pointdew:
swf远程加载问题 : flexpaper无法加载http方式 ...
Flex:使用FlexPaper显示PDF文档
客户给的邮件服务器要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.6 KB)
- 下载次数: 1191
评论
String host;
int port;
char[] passphrase;
if ((args.length == 1) || (args.length == 2)) {
String[] c = args[0].split(":");
host = c[0];
port = (c.length == 1) ? 443 : Integer.parseInt(c[1]);
String p = (args.length == 1) ? "changeit" : args[1];
passphrase = p.toCharArray();
} else {
System.out.println("Usage: java InstallCert <host>[:port] [passphrase]");
return;
}这代码有问题args为空不可能进行第一步
发表评论
-
实时监控服务器的工具
2011-06-24 10:37 1569http://newrelic.com/ h ... -
设置Tomcat的JAVA_OPTS参数
2011-06-23 14:17 38970修改 TOMCAT/bin/catalina.bat 添加s ... -
PD4ML将Html导出PDF
2011-04-21 22:34 2326http://pd4ml.com/ 可以通过命令行,或 ... -
Google Data Centers List for SEO
2010-08-18 10:00 1777爬取Google的数据,有时被Block,可以让程序随机跳换I ... -
Google AuthenticationException: 403: Invalid AuthSub token
2010-08-06 23:04 2462给客户的网站做了Google Authentication认证 ... -
使用apache-cxf-2.2.5生成WebService客户端时List属性没有Setter方法
2010-01-25 14:14 7469用apache-cxf-2.2.5来生成Google Adwo ... -
使用Gson将Java对象转换为JSON
2009-12-17 19:55 32198Gson是Google的一个开源项目,可以将Java对象转换成 ... -
从Quartz数据库中删除cron trigger
2009-09-22 12:24 3644要删除quartz的cron类型的trigger,从qrtz_ ... -
解决Spring中使用quartz发生NotSerializableException methodInvoker的问题
2009-09-15 21:52 18174Spring2.5 + quartz1.6.5 发生如下异常 ... -
Hibernate的HQL中使用left join
2009-09-02 12:50 8042业务为: 消费者 - 订单 - 所购产品 - 产品评论 ... -
htmlparser在分析RemarkNode注释时的bug
2009-07-29 22:44 2946在使用 htmlparser1.6 分析一段Html时发现 ... -
Java查询获取Google PageRank
2009-06-19 11:44 3660Java代码如下 import java.net.UR ... -
Eclipse快捷键
2009-06-12 15:49 1383Eclipse 快捷键 Ctrl + Shift + ... -
使用TCPMonitor监控WebService SOAP消息
2009-05-11 16:13 10227使用Apache axis的TCPMonitor可以监控Web ... -
在EJB3的WebService方法中获取HttpServletRequest对象
2009-04-16 17:18 3372在EJB3写的WebService中获取HttpServlet ... -
修改server.xml文件从外网访问JBoss
2009-04-15 21:55 6526从外网访问JBoss,可以加启动参数 run -b 0.0.0 ... -
通过IP访问JBoss失败的问题
2008-10-29 16:04 2133用WTP启动JBoss,通过IP访问JBoss Server ... -
禁用Eclipse的Subclipse插件
2008-09-05 12:06 4539要禁用Eclipse的Subclipse插件 Help - ... -
POJO加Annotation做validation验证
2008-08-27 12:22 2175写了一个POJO + Annotation来做validati ... -
在JBoss中调用WebService出org.jboss.ws.WSException
2008-07-23 19:49 4272使用jboss-4.2.2.GA,在调用remote web ...
相关推荐
在使用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是一款功能强大的性能测试工具,不仅支持多种资源的压力测试,还能进行...