ssljava代碼,ssl java

java如何使用ssl連接qq郵箱

Gmail目前已經(jīng)啟用了POP3和SMTP服務(wù),與其他郵箱不同的是Gmail提供的POP3和SMTP是使用安全套接字層SSL的,因此常規(guī)的JavaMail程序是無(wú)法收發(fā)郵件的,下面是使用JavaMail如何收取Gmail郵件以及發(fā)送郵件的代碼:

公司主營(yíng)業(yè)務(wù):成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶(hù)真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶(hù)帶來(lái)驚喜。創(chuàng)新互聯(lián)推出蓮花免費(fèi)做網(wǎng)站回饋大家。

1.?[代碼]GmailFetch.java?????跳至?[1]?[2]?[全屏預(yù)覽]

01????package?lius.javamail.ssl;????

02?????????

03????import?java.io.UnsupportedEncodingException;????

04????import?java.security.*;????

05????import?java.util.Properties;????

06????import?javax.mail.*;????

07????import?javax.mail.internet.InternetAddress;????

08????import?javax.mail.internet.MimeUtility;????

09?????????

10????/**????

11?????*?用于收取Gmail郵件????

12?????*?@author?Winter?Lau????

13?????*/????

14????public?class?GmailFetch?{????

15??????????

16?????public?static?void?main(String?argv[])?throws?Exception?{????

17?????????

18??????Security.addProvider(new?com.sun.net.ssl.internal.ssl.Provider());????

19??????final?String?SSL_FACTORY?=?"javax.net.ssl.SSLSocketFactory";????

20?????????

21??????//?Get?a?Properties?object????

22??????Properties?props?=?System.getProperties();????

23??????props.setProperty("mail.pop3.socketFactory.class",?SSL_FACTORY);????

24??????props.setProperty("mail.pop3.socketFactory.fallback",?"false");????

25??????props.setProperty("mail.pop3.port",?"995");????

26??????props.setProperty("mail.pop3.socketFactory.port",?"995");????

27?????????

28??????//以下步驟跟一般的JavaMail操作相同????

29??????Session?session?=?Session.getDefaultInstance(props,null);????

30?????????

31??????//請(qǐng)將紅色部分對(duì)應(yīng)替換成你的郵箱帳號(hào)和密碼????

32??????URLName?urln?=?new?URLName("pop3","pop.gmail.com",995,null,????

33????????"[郵箱帳號(hào)]",?"[郵箱密碼]");????

34??????Store?store?=?session.getStore(urln);????

35??????Folder?inbox?=?null;????

36??????try?{????

37???????store.connect();????

38???????inbox?=?store.getFolder("INBOX");????

39???????inbox.open(Folder.READ_ONLY);????

40???????FetchProfile?profile?=?new?FetchProfile();????

41???????profile.add(FetchProfile.Item.ENVELOPE);????

42???????Message[]?messages?=?inbox.getMessages();????

43???????inbox.fetch(messages,?profile);????

44???????System.out.println("收件箱的郵件數(shù):"?+?messages.length);????

45???????for?(int?i?=?0;?i??messages.length;?i++)?{????

46????????//郵件發(fā)送者????

47????????String?from?=?decodeText(messages[i].getFrom()[0].toString());????

48????????InternetAddress?ia?=?new?InternetAddress(from);????

49????????System.out.println("FROM:"?+?ia.getPersonal()+'('+ia.getAddress()+')');????

50????????//郵件標(biāo)題????

51????????System.out.println("TITLE:"?+?messages[i].getSubject());????

52????????//郵件大小????

53????????System.out.println("SIZE:"?+?messages[i].getSize());????

54????????//郵件發(fā)送時(shí)間????

55????????System.out.println("DATE:"?+?messages[i].getSentDate());????

56???????}????

57??????}?finally?{????

58???????try?{????

59????????inbox.close(false);????

60???????}?catch?(Exception?e)?{}????

61???????try?{????

62????????store.close();????

63???????}?catch?(Exception?e)?{}????

64??????}????

65?????}????

66??????????

67?????protected?static?String?decodeText(String?text)????

68???????throws?UnsupportedEncodingException?{????

69??????if?(text?==?null)????

70???????return?null;????

71??????if?(text.startsWith("=?GB")?||?text.startsWith("=?gb"))????

72???????text?=?MimeUtility.decodeText(text);????

73??????else????

74???????text?=?new?String(text.getBytes("ISO8859_1"));????

75??????return?text;????

76?????}????

77?????????

78????}????

2.?[代碼]GmailSender.java?????

01????package?lius.javamail.ssl;????

02?????????

03????import?java.security.Security;????

04????import?java.util.Date;????

05????import?java.util.Properties;????

06?????????

07????import?javax.mail.Authenticator;????

08????import?javax.mail.Message;????

09????import?javax.mail.MessagingException;????

10????import?javax.mail.PasswordAuthentication;????

11????import?javax.mail.Session;????

12????import?javax.mail.Transport;????

13????import?javax.mail.internet.AddressException;????

14????import?javax.mail.internet.InternetAddress;????

15????import?javax.mail.internet.MimeMessage;????

16?????????

17????/**????

18?????*?使用Gmail發(fā)送郵件????

19?????*?@author?Winter?Lau????

20?????*/????

21????public?class?GmailSender?{????

22?????????

23?????public?static?void?main(String[]?args)?throws?AddressException,?MessagingException?{????

24??????Security.addProvider(new?com.sun.net.ssl.internal.ssl.Provider());????

25??????final?String?SSL_FACTORY?=?"javax.net.ssl.SSLSocketFactory";????

26??????//?Get?a?Properties?object????

27??????Properties?props?=?System.getProperties();????

28??????props.setProperty("mail.smtp.host",?"smtp.gmail.com");????

29??????props.setProperty("mail.smtp.socketFactory.class",?SSL_FACTORY);????

30??????props.setProperty("mail.smtp.socketFactory.fallback",?"false");????

31??????props.setProperty("mail.smtp.port",?"465");????

32??????props.setProperty("mail.smtp.socketFactory.port",?"465");????

33??????props.put("mail.smtp.auth",?"true");????

34??????final?String?username?=?"[郵箱帳號(hào)]";????

35??????final?String?password?=?"[郵箱密碼]";????

36??????Session?session?=?Session.getDefaultInstance(props,?new?Authenticator(){????

37??????????protected?PasswordAuthentication?getPasswordAuthentication()?{????

38??????????????return?new?PasswordAuthentication(username,?password);????

39??????????}});????

40?????????

41???????????//?--?Create?a?new?message?--????

42??????Message?msg?=?new?MimeMessage(session);????

43?????????

44??????//?--?Set?the?FROM?and?TO?fields?--????

45??????msg.setFrom(new?InternetAddress(username?+?"@mo168.com"));????

46??????msg.setRecipients(Message.RecipientType.TO,????

47????????InternetAddress.parse("[收件人地址]",false));????

48??????msg.setSubject("Hello");????

49??????msg.setText("How?are?you");????

50??????msg.setSentDate(new?Date());????

51??????Transport.send(msg);????

52???????????

53??????System.out.println("Message?sent.");????

54?????}????

55????}

如何用Java代碼來(lái)把SSL的證書(shū)自動(dòng)導(dǎo)入到Jav

下面這個(gè)Java類(lèi)可以幫助我們做這個(gè)事情。同時(shí)我們還可以把這個(gè)幫助方法開(kāi)發(fā)一個(gè)可視化的程序,這樣就更加方便:

import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.security.KeyStore;import java.security.cert.CertificateFactory;import java.security.cert.X509Certificate;import java.util.List;import javax.naming.ldap.LdapName;import javax.naming.ldap.Rdn;import javax.security.auth.x500.X500Principal;public class KeyStoreHelper { public static void createTrustJKSKeyStore(final String originalTrustFolder, final String jksTrustStoreLocation, final String password) { File keyStoreFile = new File(jksTrustStoreLocation); if (!keyStoreFile.exists()) { try { KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType()); keystore.load(null, password.toCharArray()); File trustedFolder = new File(originalTrustFolder); File[] certs = trustedFolder.listFiles(); if (certs != null) { for (File cert : certs) { CertificateFactory factory = CertificateFactory.getInstance("X.509"); try { X509Certificate certificate = (X509Certificate) factory.generateCertificate(new FileInputStream(cert)); X500Principal principal = certificate.getSubjectX500Principal(); LdapName ldapDN = new LdapName(principal.getName()); ListRdn rdns = ldapDN.getRdns(); for (Rdn rdn : rdns) { String type = rdn.getType(); if (type.equals("CN")) { keystore.setCertificateEntry((String) rdn.getValue(),certificate);break; } } } catch (Exception ex) { continue; } } } FileOutputStream fos = new FileOutputStream(jksTrustStoreLocation); keystore.store(fos, password.toCharArray()); fos.close(); } catch (Exception exp) { } } } /** * @param args */ public static void main(String[] args) { KeyStoreHelper.createTrustJKSKeyStore("D:\\cacerts", "D:\\cacerts\\test.jks", "test123"); }}

JAVA怎樣調(diào)用https類(lèi)型的webservice

1.打開(kāi)webService鏈接,右鍵屬性—》證書(shū)—》詳細(xì)信息—》復(fù)制到文件,保存cer格式的文件。

2. 復(fù)制下面的cmd命令,執(zhí)行keytool命令,生成keystore文件,例如

c:\nciic.keystore

keytool -import -alias nciic -file c:\jswszx.cer -keystore c:\nciic.keystore

它會(huì)提示輸入密碼,隨便輸入,例如:123456,回車(chē)

4.他會(huì)提示是否信任這個(gè)認(rèn)證,輸入Y,回車(chē),指定目錄下就會(huì)生成nciic.keystore文件

它會(huì)提示輸入密碼,隨便輸入,例如:123456,回車(chē)

4.他會(huì)提示是否信任這個(gè)認(rèn)證,輸入Y,回車(chē),指定目錄下就會(huì)生成nciic.keystore文件

5.修改Java代碼

在調(diào)用接口方法之前,添加如下代碼:

System.setProperty("javax.NET.ssl.trustStore","c://nciic.keystore"); System.setProperty("java.protocol.handler.pkgs","com.sun.Net.ssl.internal.");

java.security.Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

JAVA和C++的SSL通訊程序 問(wèn)題1:C收到JAVA發(fā)來(lái)的程序,打印出來(lái)只有一部分。 問(wèn)題2:C返回給JAVA的數(shù)據(jù),

1、循環(huán)讀取描述符,直到讀取不到數(shù)據(jù)才算是讀取完成;

2、正常情況下write只是把數(shù)據(jù)寫(xiě)到內(nèi)核的緩沖區(qū)中,由內(nèi)核調(diào)度寫(xiě)入到物理設(shè)備

可以使用O_SYNC同步I/O,這樣write只有在數(shù)據(jù)被實(shí)際寫(xiě)入之后才會(huì)返回;

可以使用tcpdump查看是否已經(jīng)把數(shù)據(jù)發(fā)送成功;

內(nèi)核緩沖區(qū)的作用是提高網(wǎng)絡(luò)發(fā)送效率,只有等緩沖區(qū)數(shù)據(jù)滿(mǎn)了才會(huì)一起發(fā)送,查看是否是因?yàn)檫@個(gè)導(dǎo)致c程序只有在結(jié)束程序后,內(nèi)核才把數(shù)據(jù)發(fā)送出去

Java 代碼操作帶SSL的FTP服務(wù)器

參考

client = new FTPSClient(implictSSL);

KeyManagerFactory kmf = KeyManagerFactory.getInstance("X509");

kmf.init(KeyStore.getInstance("BKS"), "wshr.ut".toCharArray());

client.setTrustManager(new X509TrustManager() {

public X509Certificate[] getAcceptedIssuers() { return null; }

public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { }

public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { }

});

client.setKeyManager(kmf.getKeyManagers()[0]);

client.setNeedClientAuth(false);

client.setUseClientMode(false);

如何在Java SE使用SSL設(shè)定相互驗(yàn)證

這個(gè)要考慮并發(fā),即使兩個(gè)用戶(hù)同時(shí)請(qǐng)求,請(qǐng)求的也是你底層的一段代碼,在這個(gè)代碼上面加鎖,一個(gè)訪問(wèn)結(jié)束之前另一個(gè)不能訪問(wèn)。

Java實(shí)現(xiàn)ssl,需要將ssl證書(shū)導(dǎo)入jvm,才能正常工作,否則不行。

導(dǎo)入命令參考如下

keytool -import -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit -keypass 123456 -alias 45alias -file D:/test.cer

網(wǎng)站欄目:ssljava代碼,ssl java
鏈接地址:http://muchs.cn/article16/hssddg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、網(wǎng)站導(dǎo)航網(wǎng)站改版、微信公眾號(hào)、定制網(wǎng)站、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名