兄弟我理论性的东西说不出来,不过实际运用咱还是有办法的
前几天由于工作需要,想了解下关于支持ssl的邮件收发,按照以前普通的做法是行不通的,所以就上网东找找,西瞧瞧。发现了个好东西,并且实验成功。
那天本想来javaeye看看有没有人有相关的经验,找了老半天,连个屁也没闻到,我就说我们,我们这些做程序员的不能老是吹吹水,谈谈道理,我们得拿出点实际的东西出来,就想fins一样,我就很佩服他的贡献精神。
不说废话了,看看源代码,大家有空也可以实验下。还真有用
java 代码
-
-
-
-
-
- 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";
-
-
- 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");
-
-
- 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;
- }
-
- }
上面代码,完全可以封装成一个收取ssl邮件的库
改天有时间整理下关于发邮件的方法
分享到:
相关推荐
- `email`库的`message_from_bytes()`函数可以解析邮件内容,得到一个`Message`对象。 - `Message`对象有多个方法,如`get_content_type()`、`get_payload()`等,用于获取邮件的类型、主题、发件人、收件人、正文...
标题中的“Go-enmasse”是一个使用Go语言开发的工具,专门用于创建GMail邮件草稿。这个程序的独特之处在于它结合了模板编译和JSON数据,使得动态生成邮件内容变得更加方便和高效。在Go语言中,模板引擎是标准库的一...
### Python通过imaplib模块读取Gmail中的邮件 在当今高度数字化的工作环境中,电子邮件成为企业和个人之间交流的重要渠道。为了能够有效地处理大量的邮件信息,并从中提取有用的数据进行分析或自动化某些工作流程,...
Google 提供的 Gmail API 是一个强大的工具,允许开发者构建应用程序,从用户的 Gmail 帐户中安全地获取、发送、管理电子邮件。这个名为 "Gmail_API_Access" 的项目是一个 Android 测试程序,展示了如何利用 Gmail ...
在IT行业中,Laravel是一个非常受欢迎的开源PHP框架,它为开发者提供了优雅的方式来构建Web应用程序。本项目聚焦于使用Laravel与Google的Gmail API进行集成,从而实现发送邮件、读取邮件等实用功能。"laravel-gmail...
在实际开发中,这个DEMO可能会展示如何将以上步骤整合到一个可执行的脚本或应用程序中,使开发者能够快速地在自己的项目中复用邮件读取功能。如果你正在寻找如何实现这个功能,这个DEMO会是一个很好的起点。请解压...
在IT行业中,邮件读取...综上所述,"ReadEmail"这个代码样例提供了一个基础框架,帮助开发者实现邮件读取功能。通过理解这些核心概念和技术,开发者可以扩展这个示例以适应更复杂的需求,构建出强大的邮件处理工具。
本项目是一个使用VC++实现的邮件发送程序,它支持通过SMTP(Simple Mail Transfer Protocol)协议发送带有附件的电子邮件。SMTP是互联网上用于发送电子邮件的标准协议,而在这个程序中,它被用来将邮件从本地客户端...
你可以将这些代码封装成一个脚本,通过定时任务服务(如Linux的cron或Windows的任务计划程序)定期执行,实现自动发送邮件。 综上所述,通过Python结合XML解析和邮件发送功能,可以在多种操作系统上实现自动化的...
以下是一个简单的VB代码示例: ```vbnet Imports System.Net.Mail Imports System.Net Imports System.Text Dim mail As New MailMessage() Dim smtp As New SmtpClient() ' 设置发件人和收件人 mail.From = New ...
JavaMail API是一个开源项目,提供了处理邮件服务器交互的标准接口。 1. **JavaMail API**: JavaMail API是Java中用于发送和接收邮件的标准API。它包括了 javax.mail 和 javax.mail.internet 包,这两个包提供了...
JMail是一个功能丰富的.NET组件,它提供了方便的API接口,使得开发者能够轻松地集成邮件功能到自己的Web应用程序中。以下是对这个主题的详细解释: 一、ASP.NET环境 ASP.NET是由微软开发的一种用于构建Web应用程序...
1. **SharpWebMail**: 这是一个使用C#编写的开源邮件服务器组件,它允许ASP.NET应用通过SMTP发送邮件。SharpWebMail支持多种邮件协议,包括POP3和IMAP,使用户能够读取和管理邮件。开发者可以通过研究源代码学习如何...
Gmail4J是一个Java库,专门设计用于与Google的Gmail服务进行交互。这个实例教程将深入探讨如何使用Gmail4J来实现各种操作,如发送邮件、接收邮件、搜索邮件以及管理收件箱。在Java开发环境中,Gmail4J提供了一种简单...
**Gmail-Mail-Counter** 是一个专为Google Chrome浏览器设计的扩展程序,它的主要功能是在用户使用Gmail时,在页面的滚动条旁边实时显示当前会话中的邮件数量。这一功能对于那些需要频繁检查未读邮件或者管理大量...
总之,通过VS2015 C++ Win32应用程序,结合SMTP协议,我们可以构建一个能够向各种主流邮件服务提供商发送邮件的实用工具,支持附件功能。这个例子为初学者提供了很好的起点,让他们了解如何在实际项目中实现邮件发送...
在这个例子中,我们将深入探讨如何利用LumiSoft.Net.IMAP库创建一个简单的控制台应用程序来接收邮件。 首先,LumiSoft.Net.IMAP库为.NET开发者提供了一个方便的接口,可以轻松地连接到IMAP服务器并执行各种操作,如...
使用 gmail atom feed 获取未读电子邮件统计信息的命令行实用程序。 安装 go get github.com/codegangsta/cli go get github.com/DATA-DOG/gmail-stats 二进制gmail-stats将安装在$GOPATH/bin 中,它应该在您的 $...
以下是一个简化的Java代码示例,展示了如何使用Gmail API获取最新邮件: ```java import com.google.api.services.gmail.Gmail; import com.google.api.services.gmail.model.Message; import ...