一個讀取Gmail郵件的簡單程式
兄弟我理論性的東西說不出來,不過實際運用我們還是有辦法的
前幾天由於工作需要,想了解下關於支援ssl的郵件收發,按照以前普通的做法是行不通的,所以就上網東找找,西瞧瞧。發現了個好東西,並且實驗成功。
那天本想來javaeye看看有沒有人有相關的經驗,找了老半天,連個屁也沒聞到,我就說我們,我們這些做程式設計師的不能老是吹吹水,談談道理,我們得拿出點實際的東西出來,就想fins一樣,我就很佩服他的貢獻精神。
不說廢話了,看看原始碼,大家有空也可以實驗下。還真有用
上面程式碼,完全可以封裝成一個收取ssl郵件的庫
改天有時間整理下關於發郵件的方法
前幾天由於工作需要,想了解下關於支援ssl的郵件收發,按照以前普通的做法是行不通的,所以就上網東找找,西瞧瞧。發現了個好東西,並且實驗成功。
那天本想來javaeye看看有沒有人有相關的經驗,找了老半天,連個屁也沒聞到,我就說我們,我們這些做程式設計師的不能老是吹吹水,談談道理,我們得拿出點實際的東西出來,就想fins一樣,我就很佩服他的貢獻精神。
不說廢話了,看看原始碼,大家有空也可以實驗下。還真有用
java 程式碼
- /**
- * 用於收取Gmail郵件
- *
- * @author wuhua
- */
- public class GmailFetch {
- private static Logger logger = Logger.getLogger(GmailFetch.class);
- public static void main(String argv[]) throws Exception {
- logger.debug("開始讀取郵件......");
- 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", ApplicationContext.POP3, 995, null,
- ApplicationContext.GMAIL_MAIL_NAME, //這裡替換您的gmail使用者名稱
- ApplicationContext.GMAIL_MAIL_PASSWORD); //這裡替換密碼
- 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);
- logger.debug("收件箱的郵件數:" + messages.length);
- for (int i = 0; i < messages.length; i++) {
- // 郵件傳送者
- String from = decodeText(messages[i].getFrom()[0].toString());
- InternetAddress ia = new InternetAddress(from);
- logger.debug("發信人:" + ia.getPersonal() + '('
- + ia.getAddress() + ')');
- // 郵件標題
- logger.debug("主題:" + messages[i].getSubject());
- // 郵件大小
- logger.debug("郵件大小:" + messages[i].getSize());
- // 郵件傳送時間
- logger.debug("傳送日期:" + messages[i].getSentDate());
- }
- } finally {
- try {
- inbox.close(false);
- } catch (Exception e) {
- }
- try {
- store.close();
- } catch (Exception e) {
- }
- }
- logger.debug("讀取郵件完畢......");
- }
- 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;
- }
- }
改天有時間整理下關於發郵件的方法
相關文章
- gmail傳送郵件AI
- [Gmail] 介紹一個通過 Gmail IMAP 服務傳送郵件的配置坑點AI
- 用Gmail做QQ郵件群發的一種方式AI
- Java Mail 郵件傳送(二):簡單封裝的郵件傳送JavaAI封裝
- Zmail-簡單易用的python郵件模組AIPython
- python 一鍵獲取郵件附件Python
- Gmail推銷郵件過濾器疑似出現故障:大量培根郵件湧入使用者主郵箱AI過濾器
- Linux 上使用 Gmail SMTP 伺服器傳送郵件通知LinuxAI伺服器
- JavaMail:java使用QQ郵箱傳送郵件簡單版。JavaAI
- 一款簡單實用的桌面電子郵件客戶端客戶端
- Gmail也出漏洞,郵件潛在的安全風險不得不防AI
- 建立一個簡單的小程式
- 簡單高可配的技術週報郵件推送工具
- win10系統下郵件客戶端無法讀取qq郵件如何解決Win10客戶端
- 在C#中使用RabbitMQ做個簡單的傳送郵件小專案C#MQ
- 從零開始學Python(九):搭建一個基於SMTP的簡單郵件預警系統Python
- 谷歌現在使用TensorFlow來阻止每天1億多封Gmail垃圾郵件谷歌AI
- Mailplane for Mac(Gmail郵件客戶端) v 4.3.1註冊啟用版AIMac客戶端
- Go的第一個Hello程式 簡簡單單 - 快快樂樂Go
- 一個簡易郵件群發軟體設計與實現
- 2 個簡單的 python 指令碼,連線 MySQL 和讀取 ExcelPython指令碼MySqlExcel
- 如何使用 ABAP 程式碼傳送郵件到指定郵箱試讀版
- 一個生日郵件提醒小工具
- easypoi 讀取 Excel 簡單應用Excel
- php 檢視郵件已讀PHP
- python 發個郵件Python
- .net 獲取郵箱郵件列表和內容
- 郵件和簡訊傳送
- Celery--簡訊與郵件
- 【GO】Elasticsearch的簡單寫入和讀取示例GoElasticsearch
- CACTER&Coremail郵件雲閘道器:支援O365與Gmail的安全防護方案REMAI
- 解讀並實現一個簡單的koa-router
- PHP判斷電子郵件是否正確的簡單方法介紹PHP
- SpringBoot整合MongoDB(實現一個簡單快取)Spring BootMongoDB快取
- 郵箱 郵政編碼 等幾個簡單的 正則 表示式的幾個例子?
- [轉]:如何快速構建一個簡單的程式
- 程式碼來構建一個簡單的compilerCompile
- 寫一個簡單的程式碼生成器