如何用IMAP协议收取未读邮件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用IMAP协议收取未读邮件相关的知识,希望对你有一定的参考价值。

参考技术A 设置方法:
  1、在Outlook中,点击上方工具条中“发送和接收”旁的下拉箭头。
  2、选择发送,选择接收设置,选择定义发送,选择接收组。
  3、在“发送/接收设置”窗口里选择所有账户,点击“编辑”按钮。
  4、选中IMAP账户,在右侧“接收邮件项目”下选择“使用下面定义的自定义行为”
  5、勾选文件夹选项下要接收邮件全文的文件夹,将收取方式由“仅下载邮件头”改为“下载包含附件在内的整个邮件”,点击“确定”。
  IMAP(即Internet Message Access Protocol,互联网信息访问协议),您可以通过这种协议将邮件服务器上的邮件双向和计算机或移动设备终端同步邮件信息。特别适合在多点使用环境多客户端工具之间的保持邮件信息同步的需求,非常适合于移动办公。IMAP4与POP3协议类似,都是邮件获取协议的一种,IMAP的最主要特点为“同步操作”。
  IMAP4改进了POP3的不足,用户可以设置先通过浏览邮件信件头来决定是否收取、删除和检索邮件的特定部分,IMAP4提供的摘要浏览功能(只接收邮件头信息功能)可以在阅读完所有的邮件到达时间、主题发件人、大小等信息后才作出是否下载的决定。
参考技术B 可以有选择的,配置有一项“在服务器上保留副本”,选中则将邮件从服务器复制到本地,不选中则直接将邮件移动到本地。其实建议你用Foxmail这个邮件客户端软件,功能比Outlook好用多了。

第9章 应用层_SMTP和POP3/IMAP协议

7. 电子邮件

7.1 电子邮件发送和接收过程

(1)图解电子邮件的发送

 

  ①一个电子邮件系统应具备三个主要组成构件A用户代理(如Outlook)、B邮件服务器、C邮件发送和接收协议(分别为SMTP和POP3协议)(POP3是邮局协议,Post Office Protocol)

  ②邮件服务器必须能够同时充当客户和服务器。如当邮件服务器A向另一个邮件服务器B发送邮件时,A就作为SMTP客户,而B是SMTP服务器;反之,当B向A发送邮件时,B就是SMTP客户,A就是SMTP服务器。

(2)发送/接收过程

  ①发件人打开PC机上的用户代理软件(如Outlook),撰写、编辑邮件,填写对方邮箱并点击“发送”

  ②outlook使用SMTP协议发给发送方的stmp邮件服务器

  ③SMTP服务器收到Outlook发过来的邮件,就把邮件临时存放在邮件缓存队列中,等待发送到接收方的邮件服务器。

  ④SMTP客户通过DNS解析出sohu.com邮件服务器的地址。

  ⑤邮件服务器上的SMTP客户每隔一定时间对邮件缓存扫描一次,如果发现邮件,就使用SMTP的25端口与接收方邮件服务器的SMTP服务器建立TCP连接,然后把邮件缓存队列中的邮件依次发送出去。

  ⑥运行在接收方邮件服务器中的SMTP服务器进程收到邮件后,把邮件放入收件人的用户邮箱中,等待收件人读取。

  ⑦收件人在打算收信时,就运行PC机中的outlook,使用POP3(或IMAP)协议读取发送给自己的邮件。(注意,POP3服务器和POP3客户之间的箭头表示的是邮件传送的方向,但它们之间的通信是由POP3客户发起的)

7.2 电子邮件信息格式

 

(1)邮件格式:分为信封和内容两大部分。(邮件内容由首部(header)和主体(body)组成。当用户写好首部后,邮件系统自动地将信封所需的信息提取出来并在信封上)

(2)内容首部各关键字

  ①“From:”:填写发送人的电子邮件地址

  ②“To:”:填入一个或多个收件人的电子邮件地址。多个收件人可以写成多行(多个地址用<>隔开,如<abc@sohu.com><def@126.com>)

  ③“Cc:”:抄送一份副本给某人。如给主管领导写一封邮件,并抄送给财务人员。当主管收到后,答复时可以选择“全部答复”,则发送人和财务人员均可收到。有些系统支持秘密抄送(Bcc关键字),这使发件人将邮件副本抄送给某人,但收件人并不知道,Bcc也称为暗送。

  ④“Replay-to:”:对方回信所用的地址。该地址可以与发送人发信时的地址不同。

  ⑤“Date:”:发信日期。可以不填,由系统自动填入。

  ⑥“Subject:”:邮件主题。注意,Subject和Body之间必须有空行(回车),正文结束标记为“.”

7.3 SMTP协议

(1)SMTP常见命令和应答

命令

含义

 

应答

状态码的含义

HELO

发送方问候收件方,后面是发件人服务器地址或标识。收件方回答OK时标识自己的身份。问候和确认过程表示两台机器可以进行通信,同时状态参数被复位,缓冲区被清空

220

服务就绪

MAIL

开始传送邮件,后面跟发件方邮件地址。该命令会清空有关缓冲区,为新的邮件做准备

250

请求邮件动作正常,完成(HELO、MAIL FROM, RCPT TO、QUIT指令执行成功会返回此信息)

RCPT

后跟收件人邮箱地址,当有多个收件人时,需要多次使用该命令,每次只能指明一个人。

235

认证通过

DATA

该命令之后的数据作为发送的数据。最后以单独的一行“.”来结束整封邮件。

221

正在处理

REST

用来通知收件方复位,所有己存入缓冲存的收件人数据,发件人数据和待传送数据都必须清除。

354

开始发送数据,以.结束(DATA指令执行成功会返回此信息)

NOOP

该命令不影响任何参数,只是要求接收方回答OK,不会影响缓冲区的数据。

500

语法错误,命令不能识别

QUIT

SMTP要求接收方必须回答OK,然后中断传输

550

命令不能执行,邮箱无效

 

 

552

中断处理:用户超出文件空间

(2)邮件交换记录(MX记录)

  它指向一个邮件服务器,用于电子邮件系统发送邮件时根据收信人的地址后缀,如abc@sohu.com的后缀为sohu.com)来查找该区域的邮件服务器

(3)手工查看邮件服务器

 

(4)利用telnet发送邮件

  ①使用telnet给dongqing91@sohu.com发送邮件,并抄送给dongqing081@sohu.com

  ②telnet成功后输入SMTP协议定义的命令和SMTP服务器交互(注意,输入过程出现错误将不能修改!)

 

7.4 POP3协议和IMAP协议

(1)POP3协议的特点:只要用户从POP服务器读取了邮件,POP服务器就把该邮件删除

(2)IMAP协议(网际报文存取协议)

  ①IMAP是一个联机协议。当用户PC上的客户端打开IMAP服务器的邮箱时,用户可以看到邮件的首部。若需要打开某个邮件,则该邮件才传到用户计算机上。

  ②IMAP最大的好处是用户可以在不同的地方使用不同的计算机随时阅读和处理邮件。

  ③IMAP还允许收件人只读取邮件中的某个部分(如先下载正文,附件中的视频不下载)

7.5 部署企业内部邮件服务器

 

(1)安装邮件服务器

  ①“Windows组件”→勾选“电子邮件服务”(即POP3服务)

  ②“Windows组件”→双击“Internet信息服务(IIS)” →勾选“SMTP service”

  ③“Windows组件”→双击“网络服务”→勾选“域名系统(DNS)”

(2)在DNS服务器上添加MX记录

  ①在DNS服务器上新建正向查找区域:5iedu.net,并在该区域下创建主机记录“mail”,地址指向192.168.80.10,注意记录类型为主机(A)

  ②在该区域中增加一条MX记录:右击5iedu.net→“新建邮件交换器(MX)”,并在如下对话框中输入邮件服务器名称mail.5iedu.net。

 

  ③在WinXP上使用nslookup查找5iedu.net区域的邮件服务器。(注意XP的DNS要设置成192.168.80.20)

 

(4)为用户创建邮箱

  ①打开POP3服务管理工具(可管理邮箱和POP3服务),创建“新域”:点击“新域”→“添加域”→输入5iedu.net,该域名就是用户邮箱后缀

  ②选中刚创建的域→“添加邮箱”→输入邮箱名“admin”和密码,同时勾选“为此邮箱创建关联的用户”→确定(注意下列的提示很重要!),注意本例使用明文身份验证

 

  ③按同样的方法创建其他邮箱(如teaching@5iedu.com

(5)配置邮件客户端收/发邮件

  ①在XP1机用outlook,在菜单栏的“工具”→“帐号”→“添加”→“邮件”

  ②然后在显示名中输入admin→在电子邮件地址中输入“admin@5iedu.net”→接收服务器和发送邮件器中均填入“mail.5iedu.com”

  ③接着在Internet mail登录中会要求填入帐号和密码,这步很关键。由于本例采用的是明文验证因此帐号名为admin@5iedu.net(注意,如果是安全密码验证身份,则填入admin即可!)。最后按同样的方法在XP2机上配置邮件teaching@5iedu.net这时就可以admin@5iedu.net互相收发邮件。

 

7.6 配置内网邮件服务器与Internet互相收/发邮件

(1)配置SMTP服务允许向Internet发送电子邮件

  ①打开IIS,展开“默认SMTP虚拟服务器”→“新建”→“域”,选择“远程”→在域名中填写“*.com(这意味着该SMTP服务器会将所有com结尾的电子邮件转发到Internet)。

  ②右键“*.com”域→选中“允许将传入邮件中断到此域”和“使用DNS以发送到此域”。

 

  ③测试:在xp2的outlook客户端写一封邮件给abc@sohu.com

(2)从Internet向内网服务器发送邮件

  ①在Internet上注册一个域名(5iedu.net),添加mail主机(A)记录,地址指向内网的公网地址。同时添加邮件交换记录(MX记录)

 

  ②将连接internet网的25号端口(TCP)映射物理主机的25端口上注意,要关掉物理主机的Windows防火墙

 

  ③将物理主机的25号端口转发给内网SMTP服务器(放在VMnet8网络中的Win2003虚拟机)。方法是“VMware”→“编辑”菜单→“虚拟网络编辑器”→选择“VMnet8”→“NAT设置”→添加端口转发)。

 

  ④登录sohu邮箱,并发送一封邮件给admin@5iedu.net,测试是否可以从Internet发邮件到内网的邮件服务器。(说明:Internet的计算机是通过Internet上的DNS解析和端口映射找到内网的SMTP服务器。因此可以发送邮件到内网SMTP服务器中。同理,内网的计算机使用的是内网的DNS解析,所以可将内网邮件发往Internet。)

以上是关于如何用IMAP协议收取未读邮件的主要内容,如果未能解决你的问题,请参考以下文章

foxmail为啥收取邮件不全,只能收取6月30号之前的,近期的都收取不到

foxmail7.2版本,邮件已经点击阅读了,但是过了不久,又变成未读状态,如何解决。

RedHat6下使用Postfix与Dovecot部署基础的邮件系统

将*单个* IMAP 邮件标记为未读

JavaMail 使用 IMAP 读取最近的未读邮件

从 Gmail 中检索未读电子邮件 - JavaMail API + IMAP