相关推荐
-
http、smtp协议封装
用c++封装的http和smtp协议,可以实现http下载和邮件客户端,实现了邮件的发送
-
用.net发送 Email 帮助类 EmailHelper
上一篇转人家的, 虽然复制粘贴简单, 但找参数都要找半天的…… 发送邮件不就是知道人家的地址,再输入主题和内容就可以了嘛! 1. 配置文件 App.config 2. EmailHelper 类 using System; using System.Collections.Gener
-
SMTP说明(与HTTP的对比)
SMTP简单说明 下去是因特网电子邮件系统的总体情况: 从该图中我们可以看到它有3个主要组成部分:用户代理(user agent)、邮件服务器(mail server)和简单邮件传输协议( Simple Mail Transfer Protocol ,SMTP)。用户代理允许用户阅读、回复、转发、保存和撰写报文。微软的Outlook和 Apple Mail 是电子邮件用户代理的例子。完成邮件撰写时,邮件代理向其邮件服务器发送邮件,此时邮件放在邮件服务器的报文队列中。邮件服务器形成了电子邮件体系结构的核心。
-
轻量级邮件发送组件:基于 Socket/SMTP 协议的浅层封装
Java 发送邮件组件,大家第一时间想到的就是 JavaMail。JavaMail 本身也不大,才 500kb 的 jar 包,足够轻量级。而今天为大家介绍的,可以说“羽量级”,核心一个类就可以发送邮件了,除了依赖 JDK 无须依赖什么。如果我们了解 SMTP 协议以及 Socket 的简单使用,就知道其中过程并不复杂——实质都是基于文本的协议交互。
-
邮件协议SMTP、POP3和IMAP
IMAP提供邮件服务器与邮件客户端之间的双向通信,客户端的操作都会反馈到服务器上,对邮件进行的任何操作,服务器上的邮件也会做相应的动作。也就是说,你在本地对邮件进行的操作和邮箱服务器是同步的。他可以使用邮件客户端对邮件进行接收以及操作。比如移动该邮件,删除该邮件,标记该邮件为已读,但是这些操作并不会反馈到邮箱服务器上。也就是说,你在本地对邮件进行的操作和邮箱服务器是不同步的。SMTP服务器通过查询DNS得到对方邮箱的POP3服务器,然后将邮件通过SMTP协议传送给对方的POP3服务器或IMAP服务器。
-
[源码和文档分享]基于SMTP协议和POP3协议实现的邮件收发客户端
一、概要设计 1.1 抽象数据类型定义 主要定义了三个抽象数据类型: Base64 功能:用于发送邮件时进行编码,以及接收邮件时进行解码 数据部分:无 操作部分:编码(encode)、解码(decode) SMTP 功能:简单邮件传输协议类。用于实现SMTP协议中各种命令调...
-
smtp协议邮件发送工具MailUtil的配置文件
#发送方的邮箱账号 mail.username=****@sina.cn #发送方的邮箱密码 mail.password=***** #使用的协议(JavaMail规范要求) mail.transport.protocol=smtp #发件人的邮箱的 SMTP 服务器地址 mail.smtp.host=smtp.sina.cn #需要请求认证 mail.smtp.auth=true #某...
-
计算机网络实验:如何用SMTP协议发送邮件?(C#实现)
实验目的: (1)掌握SMTP协议各个字段的含义; (2)掌握利用SMTP协议发送电子邮件。 实验内容: 设计一个页面,利用SMTP协议,实现发送一封邮件,具体要求如下: (1)可输入邮箱地址,编写邮件内容; (2)有邮件发送提示,利用协议发送邮件。 设计 SMTP界面入下图: 另外: 没有163邮箱可以先注册一个,下面要用到,然后登陆邮箱,找到POP3/SMTP/IMAP,选择开启服务IMAP/SMTP服务和POP3/SMTP服务,下拉新增授权码,然后申请一个,待会...
-
SMTP协议发送附件 MIME扩充协议
SMTP协议发送附件 MIME扩充协议
-
SMTP 协议邮件发送工具封装
文章目录1. 前言1.1 说明1.2 建议1.3 源码2. 发件人邮箱开通smtp 服务2.1 为什么要开通smtp 服务2.2 开启服务的步骤2.3 普通邮箱开启服务图文3. 工具类封装3.1 邮件依赖管理3.2 日志依赖管理3.3 邮件工具类封装4. 工具类测试及效果演示5. 模拟邮件发送接口及接口测试 1. 前言 1.1 说明 此处为Jav...
-
SMTP协议介绍
1、SMTP介绍 基本概念 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件 的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件 时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程 只要几分钟。SMTP服务器则
-
一个关于SMTP 的封装类
今天网友问我要SMTP 的封装类,我顺便共享在网上,换点积分,实在是太穷了,别怪我。想免费的自己去CODEPROJECT上面去下载,这个是我比较喜欢的一个。 地址如下:http://download.csdn.net/detail/saiolive/9565972
-
php使用smtp封装类发送邮件
<?php date_default_timezone_set('Asia/Shanghai'); // 'Asia/Chongqing' or 'PRC' require_once ('mail.class.php'); $smtpserver = "smtp.163.com";//SMTP服务器 $smtpserverport =25;//SMTP服务器端口 $smtpusermai
-
SMTP协议分析
SMTP协议分析 第1章. SMTP概述 1.1. SMTP在邮件通信中的位置 SMTP,即简单邮件传送协议,所对应RFC文档为RFC821。同http等多数应用层协议一样,它工作在C/S模式下,用来实现因特网上的邮件传送。SMTP在整个电子邮件通信中所处的位置如图 1所示。 图 1电子邮件的通信过程 可以看出,SMTP是用来将客户机上的邮件传送到服务器上。这里的客户机
-
php 利用smtp封装类发送邮件
1. smtp封装类,二开注意名称不要与已有冲突还要注意位置放正确, 比如我这里重命名为smtp_email.php,放在classes文件夹下 &lt;?php class smtp_email { /* Public Variables */ public $smtp_port; public $time_out; public $host_n...
-
SMTP协议详解
SMTP发送邮件之前需要将二进制多媒体编码为ASCII码,并且在使用SMTP传输后要求将相应的ASCII码邮件解码还原为多媒体数据,我们知道的是HTTP传输前不需要将多媒体数据编码为ASCII码。,我们几天主要来说一下在应用层中的SMTP协议,它使用TCP可靠数据传输服务,像大多数应用层协议一样,SMTP也有俩个部分:运行在发送方邮件服务器的客户端和运行在接收方邮件服务器的服务器端,http更像一个拉协议,服务商在Web上装载信息,用户使用HTTP从该服务器拉取这些信息,......
-
SMTP协议
一、SMTP组成部分 SMTP协议是互联网上最古老的应用之一,是电子邮件所采用的协议,是电子邮件发送电子邮件时的协议。 它包括3个组要组成部分。 (1)用户代理 (2)邮件服务器 (3)邮件协议 二、用户代理 用户代理:运行在客户端的软件。 作用: (1)它允许用户阅读,回复,转发,保存,编辑邮件消息。 (2)发送/接收邮件消息到/从服务器。 (3)运行邮件协议。 三、邮件服务器 邮件服务器:也就是我们常说的邮箱存放的位置。 作用: (1)用邮箱存放用户接收的邮件消息。事实上现在绝大部分邮件服务器也同时存放
-
计算机网络——SMTP
因特网电子邮件有三个主要组成部分 用户代理(用的什么客户端发送的邮件) 邮件服务器(邮件远程传输,在邮件服务器之间传输) 简单邮件传输协议(协议) 发送邮件的大概流程 邮件通过客户端传输到邮件服务器 通过跨邮件服务器之间传输使用SMTP协议进行传输。 当收件方的客户上线之后,会与服务器相连接,将邮件传输到客户端 SMTP报文 图片来源:https://blog.csdn.net/qq_35644234/article/details/68961603 报文 首先,需要先与目的邮件服务器建立连接H
-
QT SMTP发送邮件(封装库)
SMTP是一组用于从源地址到目的地址传送邮件的规则,并且控制信件的中转方式。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,我们就可以把E—mail寄到收信人的服务器上了,整个过程只需要几分钟。SMTP服务器是遵循SMTP协议的发送邮件服务器,用来发送或中转用户发出的电子邮件。 本文作者原创,转载请附上文章出处与本文链接。 程序暂时闭源,但提供免费,版本也会一直更新。目前正在测试阶段,首发...
14 楼 gqf2008 2008-09-17 11:27
13 楼 eishn 2008-09-17 11:15
另外一份测试在这里: http://eishn.blog.163.com/blog/static/6523182007102133552397/
这些测试不是为了真实环境模拟, Quake Wang 说得不错, 测试的实际用意是针对 Eurasia3 内核调度压力的, 所以要尽量消除 IO 的干扰。你可以注意到 ab 并发数是 1021, 已经是 ab 并发的上限了, 并且连接没有发生排队, 而且这是动态页面。
Eurasia3 在最初的时候做过一段时间的测试, 但是在最近将近一年的时间里一直忙于升级 Eurasia3, 把性能评测疏忽了, 不过目前也尚无作新压力测试的计划, 这是因为:
1. Eurasia3 发展很快, 如果给每个版本作测试, 必然会严重影响进度。
2. Eurasia3 发展至今, 各版本接口变化很大、性能起伏也很大, 测试没有意义。
3. 性能相关的改进起码在 alpha6 以后, 诸如多 CPU 支持等很多重要支持还没有加进来。故在此之前没有特别关注性能测试的打算。
基本上 ray_linn 批评得不错, 但是因为上述这些原因, 抱歉最近很长一段时间内, 都没有性能测试的计划了, 不过对于 Eurasia3 的性能, 在 Eurasia3 编写前后我做过很多测试, 基本上都是由实验得来的。
ray_linn, 我对你 MicroThread 的 C# 实现比较感兴趣, 有资料可以推荐一下吗
12 楼 QuakeWang 2008-09-17 10:47
273KB/S约等于3M的带宽,是很小的带宽
这里Document Length只有8 bytes,但是这个测试的重点在于:
每0.1秒对协程进行一次调度。
为每个请求建立一个session (共计 10000 份)。
而不是为了测试下载速度
如果你对于Eurasia3是否能够支持百万级用户有疑问,建议下载代码,试玩一下。
11 楼 ray_linn 2008-09-17 10:34
1。网络速度出奇的高,273KB/S -- ??
2。页面大小偏小:80688 bytes (估计也无图片之类的),换个看看?
这样换速度可取巧了。
10 楼 ray_linn 2008-09-17 10:30
谢谢楼下。不过我认为本机联机测试的数据不准确。
9 楼 QuakeWang 2008-09-17 10:21
http://groups.google.com/group/eurasia-users/browse_thread/thread/310b19fb3497ee67
8 楼 ray_linn 2008-09-17 10:11
给点实际的数据,服务器配置,压力测试的数据吧?
7 楼 ray_linn 2008-09-17 09:55
Erlang或者Stackless python再牛叉,也是建立在系统OS 线程上的“伪”Thread,即通俗上说的MicroThread 微线程或者GreenThread,离开OS Thread,皮之无存,毛将焉附?
我不是指摘你的项目,而是“事实上要完全利用到 Eurasia3 的长连接调度能力, 已经超过操作系统上限, 你甚至需要重新编译操作系统。”这句话很不负责。
我用C#就写过类似的MicroThread,无非如此而已。
6 楼 天才阿昭 2008-09-17 09:17
5 楼 eishn 2008-09-17 08:28
我不得不把沈崴这篇N年前的东西翻出来,哈哈
嘿黑, fyting 还记得这个啊。这篇文章也是值得纪念的, 当时真实的情况 Eurasia3 确实是 "抛弃" Python 了, 不过不是转向 Lua & Ruby, 而是全部 Stackless Python 化了。之前的 Eurasia3 轻便线程都是模拟出来的, 继续坚持原生 Python 已经遇到瓶颈, 到了无以为继的地步, 在当时要么转向 Stackless Python, 要么使用 Erlang, 而我选择了前者。程序体系转移完毕后, 就借机会恶搞了一下。
在 Eurasia3 0.0.1 alpha 之前, 这类文章还有很多, 当时 Eurasia3 仍然是试验性质的, 2006 年至 2007 年初我们主要还是在使用 Eurasia2。
4 楼 fyting 2008-09-16 23:29
── "Python 令人绝望, 为了获得更快的执行效率, 并突显我的牛叉。我将使用 Lua 构建底层核心, 并且使用 Ruby 构建华丽的拱顶。"
── "国内的 Pythoner, 你们已经有 Django 了, 所以你们实际上已经不再需要其他框架了。我联系过 TurboGears 的作者, 试图说服他们解散开发团队 …… 恰好他们也正有此意。"
"毫无疑问我需要被追捧, 或许这在 Windows 社区或者初学者社区里将更容易实现一些。"
── 在接受采访时 William Shen 如是答道。
在问到使用 Lua 和 Ruby 技术后 Eurasia3 将会有哪些进步时 William Shen 慷慨回答说, 除了 Pypy 谁也不相信 Python 的执行效率会比 C 快 10 倍、比 C++ 快 100 倍, 所以他决定放弃这个不切实际的想法。
而牛人们普遍任为 Lua 的执行效率要比 Python 快 4 倍以上, 为了向牛人兼容, 所以将使用 Lua, 因此 Eurasia3 的速度理论上将提高 4 倍以上。
── 但是使用 Lua 以后框架实际上只获得了原有速度的 1/10, 而且看上去已经使用了所有的优化手段, "事实上, 我使用 C 和汇编替代了大部分 Lua 的代码, 这当然得感谢 Lua 对 C 的完美支持"。William Shen 补充到。
我不得不把沈崴这篇N年前的东西翻出来,哈哈
3 楼 eishn 2008-09-16 20:54
meng9999 谢谢你的建议, 我来解释一下吧
对于 HTTP 协议来说, 只是在建立长连接时 HTTP 协议头部会产生额外的负荷, 但是 HTTP Body 部分协议并没有规定必须以何种方式传输数据。因为是 HTTP 长连接, 所以协议头是可以忽略的, 故对 HTTP 长连接而言, 从协议上看就是一个 TCP 传输, 而对于目前我们的网络状况而言, 经我们测试 TCP 与 UDP 等协议在传输效率上并没有特别大的差别, 甚至会有优势。故从协议上看 HTTP 长连接和 socket 并不会有本质不同。
你说的几百个用户同时连接服务器会产生性能问题, 这里涉及到 IO、CPU、数据量、报文设计等因素, 每个都能成为瓶颈, 这个我就不清楚了, 但是肯定和是否使用 HTTP 协议或者使用 socket 自定义协议关系不大。虽然表面上 HTTP 长连接不如直接使用 socket, 但是这和你使用的传统 HTTP 服务器有关, 目前绝大部分或者几乎所有 HTTP 服务器都不是为 HTTP 长连接设计的, 以至于看上去使用 HTTP 长连接建立的 Comet 应用无法支持这么多的连接。
单就维护成百上千个连接状态, 目前很多服务器在架构上就会遇到瓶颈, 不过常见的线程模型也应该可以调度上千个 HTTP 长连接。不过都会很吃力。所以 Eurasia3 服务器被设计出来。Eurasia3 不同于任何一种以往的 HTTP 应用服务器技术, 它使用的是 Stackless Python 轻便线程模型, 可以同时维护几乎没有上限的线程数量, 或者说连接数, 同时每秒可以调度百万级别的线程数量。这样瓶颈就还给了硬件和操作系统, 事实上要完全利用到 Eurasia3 的长连接调度能力, 已经超过操作系统上限, 你甚至需要重新编译操作系统。
从实测上看, 仅就短连接传统 HTTP 应用服务器和 Eurasia3 就已经有很大差距, 对于 HTTP 长连接来看则根本无法同日而语。单数百个长连接根本不会对 Eurasia3 服务器造成压力
我是沈崴, 感谢诸位的支持。
2 楼 meng9999 2008-09-16 19:25
一般几百个客户同时连接服务器;服务器性能上就有问题了;
一般建议直接使用socket直接连接,不使用http的长连接;
看你们的项目时间挺长了,有9年了;
1 楼 wanghuanan 2008-09-16 15:51