当前位置:首页 » 文件管理 » pop3message缓存

pop3message缓存

发布时间: 2023-05-31 03:47:33

‘壹’ c++语言pop3协议得到的邮件内容怎么解析

邮件内容协议分成很多个段落

首先是日期 Date: RFC 5322 日期格式

然后是收件人发件人段,“To:” 和 "From",以及抄送 "Cc:“ 和 "Bcc“

随后是“Message-ID: “,用于服务器在消息流通中不至于重复发送和存储,识别邮件的唯一性。

最后一段比较关键,格式类似于这样:

MIME-Version: 1.0 Content-type: multipart/alternative; boundary="(boundary)"

意思是表示邮件采用MIME内容编码,可以是多个组成部分,由边界线boundary划分为多个数据区。数据区之间的内容可以是html或者普通文本(参考下列代码)关键是所有文本内容都是用 base64编码重新编排过,所以要用decode_base64解开才能读取。

f!text.isEmpty{
body+="--(boundary) Content-Type:text/plain;charset=UTF-8;format=flowed (text) "
}
if!content.isEmpty{
body+="--(boundary) Content-Type:text/html;charset=UTF-8 (content) "
}

直接去解析是比较费劲的,因为其实整个编码都是采用了http传输协议的 mime 方式。建议用现成的开源代码去读去,比如CHTTPParser,速度快,效率高,都已经通过几十年检验了的成熟代码。

‘贰’ POP3/IMAP/SMTP服务的相关问题

IMAP是斯坦福大学在1986年开发的,它是一个开放的标准,被设计成POP的超集,而POP是个地位牢固的开放邮件标准。IMAP标准的最新版是IMAP第4版修订版1(RFC 2060)。IMAP第4版修订版1与IMAP4的实际差别仅仅在于前者提高了拨号链路的性能。有关IMAP4标准的详细信息请参见华盛顿大学的IMAP主页(www.washington.e/imap/ )尽管在日常使用中,IMAP的特性及对它的支持还没有压倒POP3,但是它的发展趋势已经显而易见了。主要的群件产品厂商都计划支持IMAP4。

根据定义,POP3是个存储转发的信息交换系统。POP3邮件服务器把消息发送给客户,自己并不在服务器上保存副本。与之不同,IMAP4是个客户机/服行派务器模式的应用。无论是POP3还是IMAP4,进来的邮件都存储在中央的邮件服务器上。用户使用遵循协议的邮件客户软件来连接到邮件服务器上,先进行身份验证,鉴定登录名和口令,然后用户才获得访问邮箱的权利。但是,二者的共性仅限于此。

与POP3不同,IMAP4能以三种模式或者说消息传送范式来与客户进行交互:离线、在线和断连方式。此外,IMAP4可以让用户访问多个私用和共享邮箱。

在离线方式中,客户软件把邮箱存储在本地硬盘上以进行读取和撰写信息的工作。当需要发送和接受消息时,用户才连接服务器。对于那些长期奔波、很少停留在某个固定处所的人,他们通常使用离线方式。POP3典型地以离线方式工作。

相比之下,在线用户访问的邮箱是在邮件服务器上,但是邮箱仍然由客户软件处理。邮件始终存储在服务器上。在线方式主要是由位置固定的用户使用,典型地是在快速LAN连接下进行。但是备悄从远程拨进的功能较弱的计算机在这种模式下也可以工作得很好。有一些POP3服务器也提供了在线功能,但是,它们没有达到IMAP4的功能级别。

断连方式提供了最大的灵活性。客户软件把用户选定的消息和附件复制或缓存到本地磁盘上,并把原始副本留存在邮件服务器上。缓存中的邮件可以被用户处理,以后用户重新连接邮件服务器时,这些邮件可以与服务器进行再同步。当前,该特性主要由邮件服务器实现,很少有客户软件支持断连方式。在我们评测的产品中,Sun的Internet Mail Client 是唯一提供这一功能的客户软件。

对于IMAP4而言,无论是在哪一种操作系统上,使用IMAP4邮件客户软件的用户都可以读取和回复邮件,远程地把邮件存储在层次式的文件夹中,并且可通过IMAP4邮件主机同步客户文件。客户软件和服务器相互配合,允许过滤来自特定地址的邮件,还能够防止通过低速拨号链路下载大文件。用户可以查看主机上的邮件报文,如果需要,可以决定把其中哪些内容下载到远程连接的客户机上。用户还可以有选择地下载邮件,而不必非要下载邮件的附件。

IMAP与POP3的比较

POP3提供了快捷的邮件下载服务,用户可以利用POP3把邮箱里的信下载到PC上进行离线阅读。一旦邮件进入PC的本地硬盘,就可以选择把邮件从服务器上删除,然后脱离与Internet的连接并选择在任何时候阅读已经下载的邮件。

IMAP同样提供了方便的邮件下载服务,让用户能进行离线阅读,但IMAP能完成的却远远不只这些。首先,IMAP提供的摘要浏览功能可以让你档滚贺在阅读完所有的邮件到达时间、主题、发件人、大小等信息后才作出是否下载的决定。也就是说,你不必等所有的邮件都下载完毕后才知道究竟邮件里都有些什么。如果你根据摘要信息就可以决定某些邮件对你毫无用处,你就可以直接在服务器上把这些邮件删除掉,而不必浪费你宝贵的上网时间。如果你的IMAP客户端软件完整支持IMAP4rev1的话(如Netscape 4.5),则你还可以享受选择性下载附件的服务。举例来说,假如一封邮件里含有大大小小共5个附件,而其中只有两个附件是你需要的,你就可以只下载那两个附件,节省了下载其余三个的时间。
参考资料:http://mail.cstnet.cn/za/faq.html

‘叁’ javaMail常见问题之POP3问题

问 我可以从哪里找到 POP 的支持?答 在 JavaMail 及以上版本中包括了 POP 提供程序 POP 提供程序也可从多个第三方提供商获得 请浏览我们的 第三方产品清单 获取进一步信息 问 我想在 POP 服务器上删除消息 我在这些消息上设置了 DELETED 标志 然后调用 expunge() 方法 但我得到了MethodNotSupportedException 当使用 Sun 的 POP 提供程序时 我如何删除消息? 答 POP 提供程序不支持 expunge() 方法 不过 可以关闭 expunge 标志设为 true 的文件夹 也就是调用 folder close(true) 问 在从 Sun POP 提供程序获得的消息中 我如何可以检索 POP UIDL?答 对于 POP 提供程序 这是可能的 参见 sun mail pop 包文档 获取进一步信息 问 对于 POP 我如何知道哪里消息是新的?答 POP 协议不提供任何永久标志的支持 因此 RECENT 标志是没有用的 sun mail pop 包文档讨余丛论了几个策略 它们可用于处理这一问题 问 当使用 POP 时 为什么 hasNewMessages() 总是返回 false?答 POP 协议没有提供办法来决定文件夹是否有新消息 问 我创建了 MessageCountListener(如 monitor 程序中所展示的) 但在我的 POP INBOX(收件箱)中 我从未得到通知 答 当 INBOX 打开时 POP 协议不允许客户端查看传送到 INBOX 的新消息 应用程序必须关闭 INBOX 然后重新打开它 才可以查看新消息 对于 POP 使用 MessageCountListener 接口 你从不会得到新邮件的通知 参见 sun mail pop 包文档(在 JavaMail 下载包的 docs/sundocs 目录) 获取进一步信息 问 当使用 POP 时 为什么 getReceivedDate() 返回 null?答 POP 协议不提供有关何时接收消息的信息 通过查看一些消息标题 比如 Received 标题 可能可以猜到接收日期 但这非常不可靠 问 当使用 POP 时 我得到了有关 SocketFetcher 类的抱怨 答 很有可能在 CLASSPATH 中有多个版本的 pop jar 或 mail jar 检查 CLASSPATH 的设置 如果你正在使用 JDK 或更新版本 检查 JDK 中的 jre/lib/ext 目录 确保拆森你只有 JavaMail mail jar 可用并且没有 pop jar 只有对于较老版本的 JavaMail pop jar 才是必要的 问 当使用 POP 时 我得到了有关 contentStream 字段的抱怨 答 错误通常像下面这样 java lang NoSuchFieldError: contentStream at sun mail pop POP Message getContentStream(POP Message java: )像 上面 一样 使用混合版本的 POP 提供程序和 mail jar 在包括 POP 提供程序的较新版本 mail jar 之前 你可能在 CLASSPATH中有了较老版本 问 除了 POP 服务器上的 INBOX(收件箱)外 您如何访问或创建文件夹?答 不能 POP 服务器只支持每个用户一个邮箱 大多数使用 POP 的邮件阅读者也维护着本地消息存储 他们可以将传入的消息(来自 POP INBOX)复制到存储中 并允许你将消息写到其他文件夹 参见 本项目 获取有关本地存储提供程竖御樱序的进一步消息 lishixin/Article/program/Java/JSP/201311/19707

‘肆’ 邮箱进不去了与pop3有关系吗

http://jingyan..com/article/59703552e32ee08fc0074017.html
分享打不开的原因:
1
QQ邮箱及空间打不开的原因:
2
1.可能是浏览器被挟持,找不到默认的浏览器。
3
2.可能是缓存、cookie或临时文件造成的。
4
3.可能是电脑的中病毒或安装了流氓软件。
END
浏览器被挟持,找不到默认的浏览器:
1
找到你平时喜欢的浏览器衫链举,在栏目里面,设置浏览器为默认的浏览器。
2
一般在浏览器的工具栏目下面,有一个设为默认浏览器。

END
缓存、cookie或临时文件造成的:
在工具栏目下面,有一个Internet选项。点击打开。

打开过后,在弹窗的窗口内找到如图所示或如图类似的图标。点删除。

然后,在下面的弹窗的窗口内点删除。

END
电脑的中病毒或安装了流氓软件:
1
打开你唤消的杀或碧毒软件全盘杀毒。再清理一下插件及硬盘上的垃圾。
2
如果还不能,那就是你ie出问题了,修复一下ie,用超级兔子或金山毒霸。

‘伍’ 说明POP3、SMTP协议的区别

POP3、SMTP协议的区别如下:

1、二者功能不同

POP3允许用户从服务器上把邮件存储到本地友友主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而SMTP服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。

2、二者客好好槐户端操作的反馈不同

POP3协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等),不会反馈到服务器上。而IMAP提供webmail 与电子邮件客户端之间的双向通信,客户端的操作都会反馈到服务器上,对邮件进行的操作,服务器上的邮件也会做相应的动作。

3、二者服务不同

IPOP3提供了方便的邮件下载服务,让用户能进行离线阅读。IMAP提供的摘要浏览功能可以让在阅读完所有的邮件到达时间、主题、发件人、大小等信息后才作出是否下载的决定。

(5)pop3message缓存扩展阅读:

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

SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件。 POP3协议是一个简单的协议,它用于从远程邮件服务器上获取邮件,帮助用户登录到邮件服务器上、取邮件、删除邮件等。

参考资料来袜侍源:网络-POP3

参考资料来源:网络-SMTP

‘陆’ 求助专业莓友:Hub用pop3方式收邮件的问题

SMTP用于发送邮件,如果要收取邮件呢?

收取邮件就是编写一个MUA作为客户端,从MDA把邮件获取到用户的电脑或者手机上。收取邮件最常用的协议是POP协议,目前版本号是3,俗称POP3。

Python内置一个poplib模块,实现了POP3协议,可以直接用来收邮件。

注意到POP3协议收取的不是一个已经可以阅读的邮件本身,而是邮件的原始文本,这和SMTP协议很像,SMTP发送的也是经过编码后的一大段文本。

要把POP3收取陪旁的文本变成可以阅读的邮件,还需要用email模块提供的各种类来解析原始文本,变成可阅读的邮件对象。

所以,收取邮件分两步:

第一步:用poplib把邮件的原始文本下载到本地;

第二部:用email解析原始文本,还原为邮件对象。

通过POP3下载邮件

POP3协议本身很简单,以下面的代码为例,芦瞎橡我们来获取最新的一封邮件内容神此:
import poplib

# 输入邮件地址, 口令和POP3服务器地址:
email = raw_input('Email: ')
password = raw_input('Password: ')
pop3_server = raw_input('POP3 server: ')

# 连接到POP3服务器:
server = poplib.POP3(pop3_server)
# 可以打开或关闭调试信息:
# server.set_debuglevel(1)
# 可选:打印POP3服务器的欢迎文字:
print(server.getwelcome())
# 身份认证:
server.user(email)
server.pass_(password)
# stat()返回邮件数量和占用空间:
print('Messages: %s. Size: %s' % server.stat())
# list()返回所有邮件的编号:
resp, mails, octets = server.list()
# 可以查看返回的列表类似['1 82923', '2 2184', ...]
print(mails)
# 获取最新一封邮件, 注意索引号从1开始:
index = len(mails)
resp, lines, octets = server.retr(index)
# lines存储了邮件的原始文本的每一行,
# 可以获得整个邮件的原始文本:
msg_content = '\r\n'.join(lines)
# 稍后解析出邮件:
msg = Parser().parsestr(msg_content)
# 可以根据邮件索引号直接从服务器删除邮件:
# server.dele(index)
# 关闭连接:
server.quit()

用POP3获取邮件其实很简单,要获取所有邮件,只需要循环使用retr()把每一封邮件内容拿到即可。真正麻烦的是把邮件的原始内容解析为可以阅读的邮件对象。

解析邮件

解析邮件的过程和上一节构造邮件正好相反,因此,先导入必要的模块:
import email
from email.parser import Parser
from email.header import decode_header
from email.utils import parseaddr

只需要一行代码就可以把邮件内容解析为Message对象:
msg = Parser().parsestr(msg_content)

但是这个Message对象本身可能是一个MIMEMultipart对象,即包含嵌套的其他MIMEBase对象,嵌套可能还不止一层。

所以我们要递归地打印出Message对象的层次结构:
# indent用于缩进显示:
def print_info(msg, indent=0):
if indent == 0:
# 邮件的From, To, Subject存在于根对象上:
for header in ['From', 'To', 'Subject']:
value = msg.get(header, '')
if value:
if header=='Subject':
# 需要解码Subject字符串:
value = decode_str(value)
else:
# 需要解码Email地址:
hdr, addr = parseaddr(value)
name = decode_str(hdr)
value = u'%s <%s>' % (name, addr)
print('%s%s: %s' % (' ' * indent, header, value))
if (msg.is_multipart()):
# 如果邮件对象是一个MIMEMultipart,
# get_payload()返回list,包含所有的子对象:
parts = msg.get_payload()
for n, part in enumerate(parts):
print('%spart %s' % (' ' * indent, n))
print('%s--------------------' % (' ' * indent))
# 递归打印每一个子对象:
print_info(part, indent + 1)
else:
# 邮件对象不是一个MIMEMultipart,
# 就根据content_type判断:
content_type = msg.get_content_type()
if content_type=='text/plain' or content_type=='text/html':
# 纯文本或HTML内容:
content = msg.get_payload(decode=True)
# 要检测文本编码:
charset = guess_charset(msg)
if charset:
content = content.decode(charset)
print('%sText: %s' % (' ' * indent, content + '...'))
else:
# 不是文本,作为附件处理:
print('%sAttachment: %s' % (' ' * indent, content_type))

邮件的Subject或者Email中包含的名字都是经过编码后的str,要正常显示,就必须decode:
def decode_str(s):
value, charset = decode_header(s)[0]
if charset:
value = value.decode(charset)
return value

decode_header()返回一个list,因为像Cc、Bcc这样的字段可能包含多个邮件地址,所以解析出来的会有多个元素。上面的代码我们偷了个懒,只取了第一个元素。

文本邮件的内容也是str,还需要检测编码,否则,非UTF-8编码的邮件都无法正常显示:
def guess_charset(msg):
# 先从msg对象获取编码:
charset = msg.get_charset()
if charset is None:
# 如果获取不到,再从Content-Type字段获取:
content_type = msg.get('Content-Type', '').lower()
pos = content_type.find('charset=')
if pos >= 0:
charset = content_type[pos + 8:].strip()
return charset

把上面的代码整理好,我们就可以来试试收取一封邮件。先往自己的邮箱发一封邮件,然后用浏览器登录邮箱,看看邮件收到没,如果收到了,我们就来用Python程序把它收到本地:

运行程序,结果如下:
+OK Welcome to coremail Mail Pop3 Server (163coms[...])
Messages: 126. Size: 27228317

From: Test <[email protected]>
To: Python爱好者 <[email protected]>
Subject: 用POP3收取邮件
part 0
--------------------
part 0
--------------------
Text: Python可以使用POP3收取邮件……...
part 1
--------------------
Text: Python可以<a href="...">使用POP3</a>收取邮件……...
part 1
--------------------
Attachment: application/octet-stream

我们从打印的结构可以看出,这封邮件是一个MIMEMultipart,它包含两部分:第一部分又是一个MIMEMultipart,第二部分是一个附件。而内嵌的MIMEMultipart是一个alternative类型,它包含一个纯文本格式的MIMEText和一个HTML格式的MIMEText。

小结

用Python的poplib模块收取邮件分两步:第一步是用POP3协议把邮件获取到本地,第二步是用email模块把原始邮件解析为Message对象,然后,用适当的形式把邮件内容展示给用户即可。

‘柒’ 126邮箱的pop3和smtp是什么 啊

POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。它允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件。

SMTP全称是Simple Mail Transfer Protocol,即简单邮件传输协议。用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式,帮助每台计算机在发送或中转信件时找到下一个目的地。



(7)pop3message缓存扩展阅读

常用的电子邮件协议有SMTP、POP3、IMAP4,它们都隶属于TCP/IP协议簇,默认状态下,分别通过TCP端口25、110和143建立连接。

邮件收发的整个过程大致如下:

(1)发件人调用用户代理编辑要发送的邮件。

(2)发件人点击屏幕上的”发送邮件“按钮,把发送邮件的 工作全部交给用户代理来完成。用户代理通过SMTP协议将邮件发送给发送方的邮件服务器(在这个过程中,用户代理充当SMTP客户,而发送方的邮件服务器则充当SMTP服务器)。

(3)发送方的邮件服务器收到用户代理发来的邮件后,就把收到的邮件临时存放在邮件缓存队列中,等待时间成熟的时候再发送到接收方的邮件服务器(等待时间的长短取决于邮件服务器的处理能力和队列中待发送的信件的数量 )。

(4)若现在时机成熟了,发送方的邮件服务器则向接收方的邮件服务器发送邮件缓存中的邮件。在发送邮件之前,发送方的邮件服务器的SMTP客户与接收方的邮件服务器的SMTP服务器需要事先建立TCP连接,之后再将队列中 的邮件发送出去。值得注意的是,邮件不会在因特网中的某个中间邮件服务器落地 。

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

(6)收件人在打算收信时,就运行PC机中的用户代理,使用POP3(或IMAP)协议读取发送给自己的邮件。 注意,在这个过程中,收件人是POP3客户,而接收邮件服务器则是POP3客户,箭头的方向是从邮件服务器指向接收用户,因为这是一个“拉 ”的操作 。

‘捌’ 电子邮件的原理是什么

电子邮件传输的原理为:

1、发信人使用主机上的客户端软件编写好邮件,同时输入发件人、收件人地址。通过SMTP协议与所属发送方邮件服务器建立连接,并将要发送的邮件发送到所属发送方邮件服务器。

2、发送方邮件服务器查看接收邮件的目标地址,如果收件人为本邮件服务器的用户,则将邮件保存在收件人的邮箱中。如果收件人不是本邮件服务器的用户,则将交由发送方邮件服务器的SMTP客户进程处理。

3、发送方邮件服务器的客户进程向收件人信箱所属邮件服务器发出连接请求,确认后,邮件按SMTP协议的要求传输到收件人信箱邮件服务器。收件人信箱邮件服务器收到邮件后,将邮件保存到收件人的邮箱中。

4、当收件人想要查看其邮件时,启动主机上的电子邮件应用软件,通过POP3取信协议进程向收件人信箱邮件服务器发出连接请求。

确认后,收件人信箱邮件服务器上的POP3服务器进程检查该用户邮箱,把邮箱中的邮件按POP3协议的规定传输到收信人主机的POP3客户进程,最终交给收信人主机的电子邮件应用软件,供用户查看和管理。


(8)pop3message缓存扩展阅读:

电子邮件系统采用的是客户机/服务器工作模式,整个系统的核心是电子邮件服务器。电子邮件应用软件即用户代理,负责邮件的接收、发送、编辑及打印等。用户在邮件服务器上申请的邮箱,用于邮件的存储与转发等。

目前电子邮件主要的通信协议有以下几种:

1、SMTP

SMTP全称Simple Mail Transfer Protocol,是一种TCP协议支持的提供可靠且有效电子邮件传输的应用层协议。SMTP 是建立在 TCP上的一种邮件服务,主要用于传输系统之间的邮件信息并提供来信有关的通知。SMTP主要负责底层的邮件系统如何将邮件从一台机器传至另外一台机器。

2、POP

POP3全称Post Office Protocol,是把邮件从电子邮箱中传输到本地计算机的协议。

3、IMAP

IMAP全称Internet Message Access Protocol,是POP3的一种替代协议,提供了邮件检索和邮件处理的新功能,这样用户可以完全不必下载邮件正文就可以看到邮件的标题摘要,从邮件客户端软件就可以对服务器上的邮件和文件夹目录等进行操作。

IMAP协议增强了电子邮件的灵活性,同时也减少了垃圾邮件对本地系统的直接危害,同时相对节省了用户察看电子邮件的时间。除此之外,IMAP协议可以记忆用户在脱机状态下对邮件的操作(例如移动邮件,删除邮件等)在下一次打开网络连接的时候会自动执行。

‘玖’ pop3和IMAP的区别

pop3和imap4的区别是:使用pop协议,把服务器上的邮件下载到本地来处理,任何处理都在本地;是imap4协议,本地的处理实际上是与服务器哪枯交互后,在服务器上处理。
POP的全称是 Post Office Protocol,即邮局协议,用于电子邮件的接收,它使用TCP的110端口;POP是因特网电子邮件的第一个离线协议标准,POP3允许用户从服务器李昌洞上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件。
IMAP(Internet Mail Access Protocol,Internet邮件访问协议)以前称作交互邮件访问迅册协议(Interactive Mail Access Protocol),主要作用是邮件客户端(例如MS Outlook
Express)可以通过这种协议从邮件服务器上获取邮件的信息,下载邮件等,使用的端口是143。

‘拾’ 哪位大虾来帮我看看这个javaMail的问题

Session ssession 改为Session session

热点内容
什么是程序存储器 发布:2025-02-08 01:05:01 浏览:311
解压包手机安装 发布:2025-02-08 00:49:29 浏览:957
詹雯婷访问 发布:2025-02-08 00:42:02 浏览:309
php无限分类树 发布:2025-02-08 00:42:01 浏览:814
clang编译命令 发布:2025-02-08 00:41:24 浏览:127
数据结构c语言版算法 发布:2025-02-08 00:28:19 浏览:663
python环境管理 发布:2025-02-08 00:26:51 浏览:999
个人简历源码 发布:2025-02-08 00:26:43 浏览:14
html5canvas上传图片 发布:2025-02-08 00:20:44 浏览:169
安卓输入法哪个词库好 发布:2025-02-08 00:03:47 浏览:92