利用JAVAMail发取和发送gmail邮件
2014-05-15 10:36
274 查看
Gmail目前已经启用了POP3和SMTP服务,与其他邮箱不同的是Gmail提供的POP3和SMTP是使用安全套接字层SSL的,因此常规的JavaMail程序是无法收发邮件的,下面是使用JavaMail如何收取Gmail邮件以及发送邮件的代码:
1. 邮件收取
2. 发送邮件
Gmail目前已经启用了POP3和SMTP服务,与其他邮箱不同的是Gmail提供的POP3和SMTP是使用安全套接字层SSL的,因此常规的JavaMail程序是无法收发邮件的,下面是使用JavaMail如何收取Gmail邮件以及发送邮件的代码:
1. 邮件收取
package cn.test; import java.io.UnsupportedEncodingException; import java.security.*; import java.util.Properties; import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeUtility; /** * 用于收取Gmail邮件 * */ public class GmailFetch { public static void main(String argv[]) throws Exception { Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider()); final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory"; // Get a Properties object Properties props = System.getProperties(); props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY); props.setProperty("mail.pop3.socketFactory.fallback", "false"); props.setProperty("mail.pop3.port", "995"); props.setProperty("mail.pop3.socketFactory.port", "995"); // 以下步骤跟一般的JavaMail操作相同 Session session = Session.getDefaultInstance(props, null); URLName urln = new URLName("pop3", "pop.gmail.com", 995, null,"[邮箱帐号]", "[邮箱密码]"); Store store = session.getStore(urln); Folder inbox = null; try { store.connect(); inbox = store.getFolder("INBOX"); inbox.open(Folder.READ_ONLY); FetchProfile profile = new FetchProfile(); profile.add(FetchProfile.Item.ENVELOPE); Message[] messages = inbox.getMessages(); inbox.fetch(messages, profile); System.out.println("收件箱的邮件数:" + messages.length); for (int i = 0; i < messages.length; i++) { // 邮件发送者 String from = decodeText(messages[i].getFrom()[0].toString()); InternetAddress ia = new InternetAddress(from); System.out.println("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 (Exception e) { } try { store.close(); } catch (Exception e) { } } } protected static String decodeText(String text) throws UnsupportedEncodingException { if (text == null) return null; if (text.startsWith("=?GB") || text.startsWith("=?gb")) text = MimeUtility.decodeText(text); else text = new String(text.getBytes("ISO8859_1")); return text; } }
2. 发送邮件
相关文章推荐
- 利用javamail 发送gmail邮件
- 利用javamail发送邮件实例
- 使用JavaMail发送邮件(Gmail)
- spring利用javamail,quartz定时发送邮件
- Spring项目利用Spring自带JavaMail发送邮件
- 利用asp.net自带邮件组件 发送邮件,支持126,163,gmail,qq等邮箱
- Oracle9中利用javamail发送带附件的邮件
- 利用Java的JavaMail发送邮件:企业邮箱版和个人邮箱客端版
- 利用javaMail发送邮件
- 简单java应用 利用javamail发送邮件
- 利用GMail和126的SMTP发送邮件
- 用javaMail使用gmail发送邮件,报错:AuthenticationFailedException:534-5.7.14
- 利用Spring框架封装的JavaMail实现同步或异步邮件发送
- Spring Boot中利用JavaMailSender发送邮件的方法示例(附源码)
- 利用asp.net自带邮件组件 发送邮件,支持126,163,gmail,qq等邮箱
- spring利用javamail,quartz定时发送邮件 <转>
- 关于通过javamail发送gmail邮件时无法login in问题
- javamail 发送gmail 邮件 例子
- 利用asp.net自带邮件组件 发送邮件,支持126,163,gmail,qq等邮箱
- spring利用javamail,quartz定时发送邮件