java收取和发送邮件 sslWord下载.docx

上传人:b****1 文档编号:5271478 上传时间:2023-05-04 格式:DOCX 页数:5 大小:16.29KB
下载 相关 举报
java收取和发送邮件 sslWord下载.docx_第1页
第1页 / 共5页
java收取和发送邮件 sslWord下载.docx_第2页
第2页 / 共5页
java收取和发送邮件 sslWord下载.docx_第3页
第3页 / 共5页
java收取和发送邮件 sslWord下载.docx_第4页
第4页 / 共5页
java收取和发送邮件 sslWord下载.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

java收取和发送邮件 sslWord下载.docx

《java收取和发送邮件 sslWord下载.docx》由会员分享,可在线阅读,更多相关《java收取和发送邮件 sslWord下载.docx(5页珍藏版)》请在冰点文库上搜索。

java收取和发送邮件 sslWord下载.docx

mail.pop3.socketFactory.fallback"

"

false"

);

mail.pop3.port"

995"

mail.pop3.socketFactory.port"

//以下步骤跟一般的JavaMail操作相同Sessionsession=Session.getDefaultInstance(props,null);

//请将红色部分对应替换成你的邮箱帐号和密码URLNameurln=newURLName("

pop3"

"

"

995,null,"

邮箱帐号"

邮箱密码"

Storestore=session.getStore(urln);

Folderinbox=null;

try{store.connect();

inbox=store.getFolder("

INBOX"

inbox.open(Folder.READ_ONLY);

FetchProfileprofile=newFetchProfile();

profile.add(FetchProfile.Item.ENVELOPE);

Message[]messages=inbox.getMessages();

inbox.fetch(messages,profile);

System.out.println("

收件箱的邮件数:

+messages.length);

for(inti=0;

i&

lt;

messages.length;

i++){//邮件发送者Stringfrom=decodeText(messages[i].getFrom()[0].toString());

InternetAddressia=newInternetAddress(from);

FROM:

+ia.getPersonal()+'

('

+ia.getAddress()+'

)'

//邮件标题System.out.println("

TITLE:

+messages[i].getSubject());

//邮件大小System.out.println("

SIZE:

+messages[i].getSize());

//邮件发送时间System.out.println("

DATE:

+messages[i].getSentDate());

}}finally{try{inbox.close(false);

}catch(Exceptione){}try{store.close();

}catch(Exceptione){}}}protectedstaticStringdecodeText(Stringtext)throwsUnsupportedEncodingException{if(text==null)returnnull;

if(text.startsWith("

=?

GB"

)||text.startsWith("

gb"

))text=MimeUtility.decodeText(text);

elsetext=newString(text.getBytes("

ISO8859_1"

));

returntext;

}}

2.发送邮件[java]viewplaincopypackagelius.javamail.ssl;

importjava.security.Security;

importjava.util.Date;

importjavax.mail.Authenticator;

importjavax.mail.Message;

importjavax.mail.MessagingException;

importjavax.mail.PasswordAuthentication;

importjavax.mail.Session;

importjavax.mail.Transport;

importjavax.mail.internet.AddressException;

importjavax.mail.internet.MimeMessage;

/***使用Gmail发送邮件*@authorWinterLau*/publicclassGmailSender{publicstaticvoidmain(String[]args)throwsAddressException,MessagingException{Security.addProvider(new.ssl.internal.ssl.Provider());

mail.smtp.host"

mail.smtp.socketFactory.class"

mail.smtp.socketFactory.fallback"

mail.smtp.port"

465"

mail.smtp.socketFactory.port"

props.put("

mail.smtp.auth"

true"

finalStringusername="

finalStringpassword="

Sessionsession=Session.getDefaultInstance(props,newAuthenticator(){protectedPasswordAuthenticationgetPasswordAuthentication(){returnnewPasswordAuthentication(username,password);

}});

//--Createanewmessage--Messagemsg=newMimeMessage(session);

//--SettheFROMandTOfields--msg.setFrom(newInternetAddress(username+"

@"

msg.setRecipients(Message.RecipientType.TO,InternetAddress.parse("

[收件人地址]"

false));

msg.setSubject("

Hello"

msg.setText("

Howareyou"

msg.setSentDate(newDate());

Transport.send(msg);

Messagesent."

现在发送邮件时会发生异常信息,如下:

.ssl.SSLHandshakeException:

sun.security.validator.ValidatorException:

PKIXpathbuildingfailed:

sun.security.provider.certpath.SunCertPathBuilderException:

unabletofindvalidcertificationpathtorequestedtarget

atorg.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:

419)

atorg.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:

342)

Causedby:

javax.mail.MessagingException:

Exceptionreadingresponse;

nestedexceptionis:

.ssl.SSLHandshakeException:

atcom.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:

1462)

atcom.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:

1260)

...4more

at.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:

174)

at.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:

1611)

at.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:

187)

...8more

atsun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:

285)

atsun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:

191)

atsun.security.validator.Validator.validate(Validator.java:

218)

at.ssl.internal.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:

126)

at.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:

209)

...20more

atsun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:

atjava.security.cert.CertPathBuilder.build(CertPathBuilder.java:

238)

280)

...26more

原因是需要保存安装证书

官方的QA

 

Q:

WhenconnectingtomymailserveroverSSLIgetanexceptionlike"

unabletofindvalidcertificationpathtorequestedtarget"

.A:

Yourserverisprobablyusingatestcertificateorself-signedcertificateinsteadofacertificatesignedbyacommercialCertificateAuthority.You'

llneedtoinstalltheserver'

scertificateintoyourtruststore.TheInstallCertprogramwillhelp.

使用DOS命令进入InstallCert.java存放目录

运行javacInstallCert.java将InstallCert.java编译成.class文件

在运行javaInstallCert:

465【其中xyz是要使用的mail,例如:

】【465是端口号】

得到jssecacerts文件后复制到jdk1.6.0_14\jre\lib\security目录

然后再发送邮件就OK了

代码都是测试过的,运行没问题。

InstallCert.java资源已经上传到CSDN上,需要的可以去资源页下载。

下载地址:

参考:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2