Java接收邮件
Java中接收电子邮件是Store和Folder类与MimeMessage、Session和Transport类结合使用。它用于接收电子邮件和学习 JavaMail API 的电子邮件发送阶段。 emailreceive 测试类将与附近的电子邮件服务器和帐户的邮件进行联系,并显示它们以指出主机配置文件中的主机名和 pop3 的 IP 地址,这是首选的邮件存储协议类型。
开始您的免费软件开发课程
网络开发、编程语言、软件测试及其他
要点
- 使用 JavaMail API 时,使用 Store 和文件夹类接收电子邮件。
- 可以使用 Java API 发送和接收电子邮件。底层协议与这一层完全无关。
- 使用 Session 类的 getDefaultInstance() 或 getInstance() 方法获取会话实例。生成 POP3 商店对象并链接到流行商店。
- 对存储对象执行 getFolder() 方法后,创建文件夹对象并在邮箱中打开它。
- 从文件夹对象获取消息。
- 锁定文件夹并将物品收好。
什么是Java中的接收电子邮件?
要了解 JavaMail API 的电子邮件发送阶段,emailreceive 测试类将与附近的电子邮件服务器联系,连接到帐户的电子邮件,并显示它们以突出显示主机配置文件中主机名的 IP 地址pop3 是首选的邮件存储协议类型。
接收电子邮件是使用 Store 和文件夹类以及 MimeMessage、Session 和 Transport 类来完成的。该程序接收电子邮件作为 HTTP 请求。我们必须在应用程序设置中将电子邮件地址与 servlet 相关联,以便处理传入的电子邮件消息,然后必须将 servlet 代码包含在 Web 应用程序中。正确的 servlet 从传入电子邮件接收 HTTP 请求来处理请求并发送响应。
在 Java 类中创建接收电子邮件
我们已经研究了使用 Java Mail API 发送电子邮件。由于只需学习一种协议(SMTP),发送电子邮件就相当简单了。不过,POP3 和 IMAP 是用于接收的两种协议。更传统的 POP3 协议提供一个带有单个邮件消息队列的收件箱。最新的标准 IMAP 将邮件显示为文件夹层次结构中的条目,其中一个是收件箱。
接收邮件的流程
- 定义邮件属性,使用属性类来定义协议和邮件服务器。
- 使用我们已经定义的属性创建会话来阅读这封信。
- 建立连接并创建存储来读取消息。
- 定义并打开我们需要读取的文件夹,并且应打开只读文件夹。
- 查看所选文件夹中未读的内容并将结果保存在消息数组中。
- 然后显示消息。
JavaMail 中的两个 Jar 文件
POP3 和 IMAP Provider 实现,以及它们的安全对应项 POP3S 和 IMAPS,都包含在 Java Mail 中。
我们必须加载以下两个 jar 文件才能使用 JavaMail API 发送电子邮件:
- mail.jar
- 激活.jar
我们可以将完全免费且开源的 JavaMail API 实现合并到产品中。此版本还具有 SMTP、POP3 和 IMAP 提供商的功能。名为 Jakarta Mail 的 Jakarta EE API 主要用于通过 SMTP、POP3 和 IMAP 协议发送和接收电子邮件。 Java EE 平台包含内置版本的 Jakarta Mail,但 Java SE 用户也可以使用额外的软件包。在最近几个月发布的最新版本中,还有另一个开源 Java Mail 实现(即 GNU JavaMail),仅支持 JavaMail 规范的 1.3 版本,但仅提供免费的 NNTP 后端,从而可以使用该技术进行阅读和发送新闻组文章。
- Mail.jar:我们可以将完全免费且开源的 JavaMail API 实现合并到产品中。此外,此 jar 版本中还包含 IMAP、POP3 和 SMTP 提供程序。
- Activation.jar: JavaBeans Activation Framework 类包含在此 JAR(Java 存档)文件中。演示:一系列简单的不受支持的演示,这些演示利用了可以在此目录中找到的多个 JAF 功能。包含 JAF 公共类的 Javadoc API 描述的目录用作文档。
Java接收邮件示例
下面给出的是提到的示例:
代码:
package TestNG; import java.io.IOException; import java.util.Properties; import javax.mail.Folder; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.NoSuchProviderException; import javax.mail.Session; import javax.mail.Store; import com.sun.mail.pop3.POP3Store; public class NewTest{ public static void receiveEmail(String hst, String stype, String user, String password) { try { Properties props = new Properties(); props.put("mail.store.protocol", "pop3"); props.put("mail.pop3s.host", hst); props.put("mail.pop3s.port", "995"); props.put("mail.pop3.starttls.enable", "true"); Session sess = Session.getDefaultInstance(props); Store st = sess.getStore("pop3s"); st.connect(hst, user, password); Folder emailFolder = st.getFolder("INBOX"); emailFolder.open(Folder.READ_ONLY); Message[] messages = emailFolder.getMessages(); for (int i = 0; i < messages.length; i++) { Message message = messages[i]; System.out.println("Welcome To Email"); System.out.println("Email Number " + (i + 1)); System.out.println("Subject: " + message.getSubject()); System.out.println("From: " + message.getFrom()[0]); System.out.println("Text: " + message.getContent().toString()); } emailFolder.close(false); st.close(); } catch (NoSuchProviderException e) {e.printStackTrace();} catch (MessagingException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} } public static void main(String[] args) { String host = "pop.gmail.com"; String stypes = "pop3"; String username= "[email protected]"; String password= "xodbizaoiqijifre"; receiveEmail(host, stypes, username, password); } }
输出:
说明:
- 在上面的示例中,我们用于从 java 邮件服务接收电子邮件。
- 这里使用store、pop3和其他smtp服务来连接特定的邮件用户。
- 使用Folder和Messages[]数组是为了创建实例并存储特定时间的数据。
- 循环迭代数据并验证所需条件,最后打印所有数据。
- main 方法将调用该方法,并再次创建连接实例来执行此操作。
常见问题解答
以下是提到的常见问题解答:
Q1。定义Java接收电子邮件。
答案:
使用 JavaMail API 检索或接收具有底层协议的基本电子邮件与此层完全无关。
Q2。 java中接收邮件使用哪些协议?
答案:
- IMAP
- POP3
其中IMAP是一种用于接收消息的高级协议。
Q3。我怎样才能收到Java电子邮件?
答案:
- 获取会话对象。
- 连接到 pop 服务器并构造 POP3 或 store 对象。
- 创建文件夹对象后打开它。
- 打印您从文件夹中检索到的消息数组。
- 关闭文件夹并存储对象。
结论
程序接收电子邮件作为 HTTP 请求。我们必须在应用程序设置中将电子邮件地址与 servlet 关联起来,以便处理传入的电子邮件消息,我们应该在应用程序中包含 servlet 代码。然后,适当的 Servlet 接收来自传入电子邮件的 HTTP 请求并处理它们。
以上是Java接收邮件的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

PHP和Python各有优势,选择应基于项目需求。1.PHP适合web开发,语法简单,执行效率高。2.Python适用于数据科学和机器学习,语法简洁,库丰富。

PHP是一种广泛应用于服务器端的脚本语言,特别适合web开发。1.PHP可以嵌入HTML,处理HTTP请求和响应,支持多种数据库。2.PHP用于生成动态网页内容,处理表单数据,访问数据库等,具有强大的社区支持和开源资源。3.PHP是解释型语言,执行过程包括词法分析、语法分析、编译和执行。4.PHP可以与MySQL结合用于用户注册系统等高级应用。5.调试PHP时,可使用error_reporting()和var_dump()等函数。6.优化PHP代码可通过缓存机制、优化数据库查询和使用内置函数。7

Java 8引入了Stream API,提供了一种强大且表达力丰富的处理数据集合的方式。然而,使用Stream时,一个常见问题是:如何从forEach操作中中断或返回? 传统循环允许提前中断或返回,但Stream的forEach方法并不直接支持这种方式。本文将解释原因,并探讨在Stream处理系统中实现提前终止的替代方法。 延伸阅读: Java Stream API改进 理解Stream forEach forEach方法是一个终端操作,它对Stream中的每个元素执行一个操作。它的设计意图是处

PHP适合web开发,特别是在快速开发和处理动态内容方面表现出色,但不擅长数据科学和企业级应用。与Python相比,PHP在web开发中更具优势,但在数据科学领域不如Python;与Java相比,PHP在企业级应用中表现较差,但在web开发中更灵活;与JavaScript相比,PHP在后端开发中更简洁,但在前端开发中不如JavaScript。

PHP和Python各有优势,适合不同场景。1.PHP适用于web开发,提供内置web服务器和丰富函数库。2.Python适合数据科学和机器学习,语法简洁且有强大标准库。选择时应根据项目需求决定。

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP成为许多网站首选技术栈的原因包括其易用性、强大社区支持和广泛应用。1)易于学习和使用,适合初学者。2)拥有庞大的开发者社区,资源丰富。3)广泛应用于WordPress、Drupal等平台。4)与Web服务器紧密集成,简化开发部署。

PHP适用于Web开发和内容管理系统,Python适合数据科学、机器学习和自动化脚本。1.PHP在构建快速、可扩展的网站和应用程序方面表现出色,常用于WordPress等CMS。2.Python在数据科学和机器学习领域表现卓越,拥有丰富的库如NumPy和TensorFlow。
