java如何使用ssl连接qq邮箱

Gmail目前已经启用了POP3和SMTP服务,与其他邮箱不同的是Gmail提供的POP3和SMTP是使用安全套接字层SSL的,因此常规的JavaMail程序是无法收发邮件的,下面是使用JavaMail如何收取Gmail邮件以及发送邮件的代码:1. [代码]GmailFetch.java 跳至 [1] [2] [全屏预览]01 package lius.javamail.ssl; 0...
java如何使用ssl连接qq邮箱
mail.store.protocol=imapsmail.imap.socketFactory.class=javax.net.ssl.SSLSocketFactorymail.imap.socketFactory.fallback=falsemail.imaps.host=imap.qq.commail.imaps.port=993mail.imap.auth.plain.disable=truemail.imap.auth.login.disable=truemail.smtp.auth=truemail.smtp.debug=truemail.smtp.host=smtp.qq.commail.smtp.port=465mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactorymail.smtp.socketFactory.fallback=falsemail.smtp.socketFactory.port=465mail.smtp.starttls.enable=truemail.smtp.user=ssssdafasdfad2014-01-11
Gmail目前已经启用了POP3和SMTP服务,与其他邮箱不同的是Gmail提供的POP3和SMTP是使用安全套接字层SSL的,因此常规的JavaMail程序是无法收发邮件的,下面是使用JavaMail如何收取Gmail邮件以及发送邮件的代码:1. [代码]GmailFetch.java 跳至 [1] [2] [全屏预览]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 //请将红色部分对应替换成你的邮箱帐号和密码 32 URLName urln = new URLName("pop3","pop.gmail.com",995,null, 33 "[邮箱帐号]", "[邮箱密码]"); 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("收件箱的邮件数:" + messages.length); 45 for (int i = 0; i < messages.length; i++) { 46 //邮件发送者 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 //邮件标题 51 System.out.println("TITLE:" + messages[i].getSubject()); 52 //邮件大小 53 System.out.println("SIZE:" + messages[i].getSize()); 54 //邮件发送时间 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发送邮件 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 = "[邮箱帐号]"; 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 }2014-01-09
你想问的是smtp吧?2014-01-10
网上一搜就有啦2014-01-10
mengvlog 阅读 333 次 更新于 2025-10-28 23:00:40 我来答关注问题0
  • 19 final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory"; 20 21 // Get a Properties object 22 Properties props = System.getProperties()

  •  深空见闻 webqq使用https安全连接的方法

    在QQ提醒设置页面中,查找一个名为“使用HTTPS连接”或类似名称的选项。勾选这个选项,以确保你的WebQQ连接是通过HTTPS加密的。HTTPS(HyperText Transfer Protocol Secure)是一种安全的网络通信协议,它通过在普通的HTTP通信中加入SSL/TLS层来提供数据加密和完整性验证。保存设置:勾选完使用HTTPS连接的选项...

  •  云易网络科技 qq个人邮箱java发生邮件报错企业邮箱无问题

    解决方法:登录QQ邮箱网页版生成授权码,并在代码中替换密码字段。2. SSL/TLS加密配置 QQ邮箱强制要求SSL加密连接,端口需设为465并启用SSL。若配置错误(如使用25端口或未启用SSL),会导致连接失败。检查配置项: ```properties mail.smtp.ssl.enable=true mail.smtp.port=465 ```3....

  •  深空见闻 qq浏览器ssl错误无法建立安全连接

    QQ浏览器出现“SSL错误无法建立安全连接”的提示时,可以尝试以下方法来解决问题。一、核对系统时间和时区设置 确保设备的系统时间与当前实际时间同步,时区设置正确。时间不同步可能导致SSL证书验证失败,因为证书具有有效期限。二、清除浏览器缓存和Cookie 浏览器缓存中可能存储了旧的SSL证书信息或Cookie,这些...

  •  阿暄生活 如何解决QQ浏览器打开网页提示不是私密连接问题

    解决QQ浏览器打开网页提示不是私密连接问题的方法如下:一、确保系统时间准确 首先,需要确保电脑的系统时间是准确的。打开【设置】窗口,点击【时间和日期】选项,将【自动设置时间】设置为【开】。这是因为错误的系统时间可能会导致SSL证书验证失败,从而引发私密连接错误。二、使用管理控制台处理证书问题 ...

檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部