imap读取邮箱和附件_一文看懂POP3、SMTP和IMAP之间的区别和联系

QQ和Gmail邮箱客户端设置:

3df8bf23e8488cfd3263e837d62221b4.png

一、POP3介绍

  POP3,全名为“Post Office Protocol - Version 3”,即“邮局协议版本3”。是TCP/IP协议族中的一员,由RFC1939 定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。提供了SSL加密的POP3协议被称为POP3S。

  POP 协议支持“离线”邮件处理。其具体过程是:邮件发送到服务器上,电子邮件客户端调用邮件客户机程序以连接服务器,并下载所有未阅读的电子邮件。这种离线访问模式是一种存储转发服务,将邮件从邮件服务器端送到个人终端机器上,一般是PC机或 MAC。一旦邮件发送到 PC 机或MAC上,邮件服务器上的邮件将会被删除。但目前的POP3邮件服务器大都可以“只下载邮件,服务器端并不删除”,也就是改进的POP3协议。

  POP3操作指南:

  服务器允许符合POP3(PostOfficeProtocol,Version3邮件投递协议,版本3)的邮件客户端连接Imail服务器。这些邮件客户端软件包括OutlookExpress,Outlook,NetscapeMessenger或Communicator,Eudora,Pegasus,NuPOP,Z-Mail,FoxMail,TheBat,Kmail,和Unixmail [2] 。

  POP3客户端通常采用“off-line”离线方式访问邮件服务器,会定时的访问邮件服务器,下载邮件到客户的电脑上,然后和服务器断开。一般的,邮件被临时的存储在服务器上,当客户端下载这些邮件后,它们将被服务器删除,不再保留。对于那些总是在同一台电脑上阅读邮件的用户来说,这种方式是十分适合得。另外一种方式,称为“online”在线方式,即邮件客户端总是和服务器保持连接。邮件被保持在服务器上,客户端不下载邮件到客户机上,用户可以在线的阅读保留在服务器上的邮件。那些经常使用不同电脑的用户适合于这种方式。ImailPOP3服务可以作为Windows NT服务,完全隐藏的运行或者可以以有某些交互的方式运行。该服务将一直运行即使你登出系统。IMail同时提供另外一种访问方式IMAP4(InternetMessageAccessProtocolVersion4).IMAP4服务同时提供“在线”和“离线”访问方式。Logging On登入缺省的,POP3服务利用系统账号登入系统。你可以改变这种登入方式:

  1、在控制面板,启动Services小程序。

  2、选择IMailPOP3 Server服务然后点击Startup。

  3、(可选)选择您希望的StartupType。

  4、在LogOnAs中,选择正确的登入帐号:IMailServerSystemAccount.如果您有邮件主机采用WindowsNT用户数据库作为Imail用户数据库,那么你需要使用该账号。AllowServicetoInteractwithDesktop.采用该账号时,任何用户登入系统时,桌面上都会有一个Imail的图标。

  ThisAccount.采用这种方式时,如果你的主机中没有采用WindowsNT用户数据库的,你可以输入你希望的用户账号;确认该账号是一个主机管理员。如果您有邮件主机是利用外部数据库的,确认该账号可以访问外部数据库。

  Configuringthe POP3 Server配置POP3服务器如何配置pop3服务器:

  1、在IMailAdministrator中,在左边的面板中选择“localhost”。

  2、选择“Services”目录然后点击POP3.POP3面板出现。

  3、输入以下描述的选项以配置POP3服务。

  4、单击按钮Apply保存设置。

  5、停止服务,等待5-10秒然后重新启动服务。当你单击按钮Stop/Start后,将自动保存设置的改变。

02cab15b18e64ba5fb3bb8378dbfcf3f.png

  二、SMTP介绍

  SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件。

  它使用由TCP提供的可靠的数据传输服务把邮件消息从发信人的邮件服务器传送到收信人的邮件服务器。跟大多数应用层协议一样,SMTP也存在两个 端:在发信人的邮件服务器上执行的客户端和在收信人的邮件服务器上执行的服务器端。SMTP的客户端和服务器端同时运行在每个邮件服务器上。当一个邮件服 务器在向其他邮件服务器发送邮件消息时,它是作为SMTP客户在运行。

  SMTP工作过程:

  简单邮件传输协议(SMTP)是一种基于文本的电子邮件传输协议,是在因特网中用于在邮件服务器之间交换邮件的协议。SMTP是应用层的服务,可以适应于各种网络系统。

  SMTP的命令和响应都是基于文本,以命令行为单位,换行符为CR/LF。响应信息一般只有一行,由一个3位数的代码开始,后面可附上很简短的文字说明。SMTP要经过建立连接、传送邮件和释放连接3个阶段。具体为:

  (1)建立TCP连接。

  (2)客户端向服务器发送HELO命令以标识发件人自己的身份,然后客户端发送MAIL命令。

  (3)服务器端以OK作为响应,表示准备接收。

  (4)客户端发送RCPT命令。

  (5)服务器端表示是否愿意为收件人接收邮件。

  (6)协商结束,发送邮件,用命令DATA发送输入内容。

  (7)结束此次发送,用QUIT命令退出。

  SMTP服务器基于DNS中的邮件交换(MX)记录路由电子邮件。电子邮件系统发邮件时是根据收信人的地址后缀来定位邮件服务器的。SMTP通过用户代理程序(UA)完成邮件的编辑、收取和阅读等功能;通过邮件传输代理程序(MTA)将邮件传送到目的地。

c37ee9ed82c823906a40d28ed7de83ba.png

  三、imap介绍

  IMAP(Internet Mail Access Protocol,Internet邮件访问协议)以前称作交互邮件访问协议(Interactive Mail Access Protocol)。IMAP是斯坦福大学在1986年开发的一种邮件获取协议。它的主要作用是邮件客户端(例如MS Outlook Express)可以通过这种协议从邮件服务器上获取邮件的信息,下载邮件等。当前的权威定义是RFC3501。IMAP协议运行在TCP/IP协议之上,使用的端口是143。它与POP3协议的主要区别是用户可以不用把所有的邮件全部下载,可以通过客户端直接对服务器上的邮件进行操作。

  imap特点:

  与POP3协议类似,IMAP(Internet消息访问协议)也是提供面向用户的邮件收取服务。常用的版本是IMAP4。

  IMAP4改进了POP3的不足,用户可以通过浏览信件头来决定是否收取、删除和检索邮件的特定部分,还可以在服务器上创建或更改文件夹或邮箱。它除了支持POP3协议的脱机操作模式外,还支持联机操作和断连接操作。它为用户提供了有选择的从邮件服务器接收邮件的功能、基于服务器的信息处理功能和共享信箱功能。IMAP4的脱机模式不同于POP3,它不会自动删除在邮件服务器上已取出的邮件,其联机模式和断连接模式也是将邮件服务器作为“远程文件服务器”进行访问,更加灵活方便。IMAP4支持多个邮箱。

  IMAP4的这些特性非常适合在不同的计算机或终端之间操作邮件的用户(例如你可以在手机、PAD、PC上的邮件代理程序操作同一个邮箱),以及那些同时使用多个邮箱的用户。

  imap功能:

  支持连接和断开两种操作模式。当使用POP3时,客户端只会连接在服务器上一段的时间,直到它下载完所有新信息,客户端即断开连接。在IMAP中,只要用户界面是活动的和下载信息内容是需要的,客户端就会一直连接在服务器上。对于有很多或者很大邮件的用户来说,使用IMAP4模式可以获得更快的响应时间。支持多个客户同时连接到一个邮箱。POP3协议假定邮箱当前的连接是唯一的连接。相反,IMAP4协议允许多个用户同时访问邮箱同时提供一种机制让客户能够感知其他当前连接到这个邮箱的用户所做的操作。支持访问消息中的MIME部分和部分获取。几乎所有的Internet邮件都是以MIME格式传输的。MIME允许消息包含一个树型结构,这个树型结构的叶子节点都是单一内容类型而非叶子节点都是多块类型的组合。IMAP4协议允许客户端获取任何独立的MIME部分和获取信息的一部分或者全部。这些机制使得用户无需下载附件就可以浏览消息内容或者在获取内容的同时浏览。支持在服务器保留消息状态信息。

  通过使用在IMAP4协议中定义的标志客户端可以跟踪消息状态,例如邮件是否被读取,回复,或者删除。这些标识存储在服务器,所以多个客户在不同时间访问一个邮箱可以感知其他用户所做的操作。支持在服务器上访问多个邮箱。IMAP4客户端可以在服务器上创建,重命名,或删除邮箱(通常以文件夹形式显现给用户)。支持多个邮箱还允许服务器提供对于共享和公共文件夹的访问。支持服务器端搜索。IMAP4提供了一种机制给客户使客户可以要求服务器搜索符合多个标准的信息。在这种机制下客户端就无需下载邮箱中所有信息来完成这些搜索。支持一个定义良好的扩展机制。吸取早期Internet协议的经验,IMAP的扩展定义了一个明确的机制。很多对于原始协议的扩展已被提议并广泛使用。无论使用POP3还是IMAP4来获取消息,客户端使用SMTP协议来发送。邮件客户可能是POP客户端或者IMAP客户端,但都会使用SMTP。

6ec3c9faf11ebbe53f9d12b4413a2505.png

  四、POP3、SMTP和IMAP之间的区别和联系

  POP3规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准,POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。

  POP3协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等),不会反馈到服务器上,比如通过客户端收取了邮箱中的3封邮件并移动到其他文件夹,邮箱服务器上的这些邮件是没有同时被移动的 。

  而IMAP提供webmail 与电子邮件客户端之间的双向通信,客户端的操作都会反馈到服务器上,对邮件进行的操作,服务器上的邮件也会做相应的动作。同时,IMAP像POP3那样提供了方便的邮件下载服务,让用户能进行离线阅读。IMAP提供的摘要浏览功能可以让你在阅读完所有的邮件到达时间、主题、发件人、大小等信息后才作出是否下载的决定。此外,IMAP 更好地支持了从多个不同设备中随时访问新邮件。

  SMTP它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。

  SMTP认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。增加SMTP 认证的目的是为了使用户避免受到垃圾邮件的侵扰。

  IMAP全称是Internet Mail Access Protocol,即交互式邮件存取协议,它是跟POP3类似邮件访问标准协议之一。不同的是,开启了IMAP后,您在电子邮件客户端收取的邮件仍然保留在服务器上,同时在客户端上的操作都会反馈到服务器上,如:删除邮件,标记已读等,服务器上的邮件也会做相应的动作。所以无论从浏览器登录邮箱或者客户端软件登录邮箱,看到的邮件以及状态都是一致的。

免责声明:本文来源于:http://m.elecfans.com/article/658580.html

转载目的在于传播更多有用的信息,仅用于学习交流使用。 如有涉及版权、其他问题,请第一时间与我们联系,我们将删除。

c18425b4e61a24ec30b76a283671666f.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来回答你的问题。 要使用Java读取邮件附件,可以按照以下步骤进行: 1. 导入JavaMail API和Java Activation Framework库。 2. 创建一个IMAP会话对象,连接邮件服务器。 ```java Properties props = new Properties(); props.setProperty("mail.store.protocol", "imap"); Session session = Session.getInstance(props, null); Store store = session.getStore(); store.connect("mail.server.com", "username", "password"); ``` 3. 打开INBOX文件夹,获所有的邮件。 ```java Folder inbox = store.getFolder("INBOX"); inbox.open(Folder.READ_ONLY); Message[] messages = inbox.getMessages(); ``` 4. 遍历所有邮件,获邮件附件。 ```java for (Message message : messages) { String subject = message.getSubject(); String from = message.getFrom()[0].toString(); String text = getTextFromMessage(message); System.out.println("Subject: " + subject); System.out.println("From: " + from); System.out.println("Text: " + text); // 获邮件附件 Multipart multipart = (Multipart) message.getContent(); for (int i = 0; i < multipart.getCount(); i++) { BodyPart bodyPart = multipart.getBodyPart(i); if (bodyPart.getDisposition() != null && bodyPart.getDisposition().equalsIgnoreCase(Part.ATTACHMENT)) { String fileName = bodyPart.getFileName(); InputStream is = bodyPart.getInputStream(); // 处理附件内容 // ... } } } ``` 5. 处理附件内容的方法。 ```java private void processAttachment(InputStream is, String fileName) throws IOException { FileOutputStream fos = new FileOutputStream(fileName); byte[] buffer = new byte[4096]; int bytesRead = -1; while ((bytesRead = is.read(buffer)) != -1) { fos.write(buffer, 0, bytesRead); } fos.close(); is.close(); } ``` 以上就是使用Java读取邮件附件的基本步骤。需要注意的是,邮件服务器的配置信息需要根据实际情况进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值