首页 Soft PlugIn RAN乱 Dev开发 Info资料 English WAP 留言 登陆 注册
-
Posted by Yippee | 评论(3) | 引用(1) | 阅读2359次
B2Smtp Becky!特快专递设想2

bborn 概念错误 直投是发给对方的pop3服务器 没有smtp什么事  再想想 http://www.shengfang.org/blog/p/B2Smtpdesign.php

我再次找了一下资料:看到两个:

用Delphi编写邮件特快专递程序(附源程序)
http://www.ccw.com.cn/htm/app/aprog/01_12_4_3.asp
Received: from sm1.163.com([202.108.44.203]) by peoplemail.com.cn(JetMail 2.5.3.0)
with SMTP id jm1ac3c063eec; Thu, 29 Nov 2001 07:20:25 -0000
Received: from xubo (unknown [61.154.94.146])
by sm1.163.com (Postfix) with ESMTP id 99CF11C461061
for <cxubo at peoplemail dot com.cn>; Thu, 29 Nov 2001 15:12:49 +0800 (CST)
……
从该头部资料可以看出,邮件传递的路线是由xubo→sm1.163.com→peoplemail.com.cn,其中xubo是本人所在机器,邮件是经由sm1.163.com这个中转站才送到目的地的,而我们平常所说的邮件特快专递,就是把邮件直接送到目的地而不需要中转站。

如何才能知道目的地的地址呢?我们知道电子邮件的地址由用户名(username)和邮箱域名(address.com)两部分构成的,给域名服务器发送针对“address.com”的MX指令查询即可找到目的地的地址。被查出来的目的地可能不止一个,有时这些目的地是有优先级别之分的,分别对应着邮件的优先级别,你可以根据邮件优先级的不同对应发送,也可以任意选择其中一个发送,本文的示例将选择反馈回来的第一个目的地发送,读者可根据实际需要进行改进。

使用C#制作《邮件特快专递》
http://www.vckbase.com/document/viewdoc/?id=1236

C#的附件编码就简单多了,呵呵 attachment += Convert.ToBase64String(fileBytes,0,length);

可以从此看出,与一般的通过SMTP代理不同的是少了SMTP服务器的指定及其验证的用户名跟密码。
  描述一下整个过程:
  首先通过前述的方法得到263.net的一个邮件交换器,然后连到这个交换器上。然后连到此服务器的25端口上,
  服务器返回220。
  然后依次指示用户名,发送邮箱(人),接收邮箱(人)。接收写入邮件的数据。
  数据分为邮件头及邮件的正文两部分。
  邮件头包含:时间,发送邮箱(人),接收邮箱(人),主题,发信程序,MIME版本号,邮件内容的类型及分割符。
  当中有一些用BASE64编码的字符串就是原来的中文汉字,其实,我们在制作无SMTP代理邮件发送程序时可以直接写成中文的。
  这边就讲一下邮件内容的类型及分割符,其他的很容易理解的。
  这边的邮件内容类型是 multipart/mixed; 说明是由多种格式混合成的。
  分隔符,是用于分隔邮件内容部分与各个附件。用boundary关键字及键值来定义。
  比如本例用=====001_Dragon788446150325_=====来表示,这边有一个细节问题,键值最好要用"引起来,并不要出现空格。举个例子,如果你用boundary======001_Dragon788446150325_=====来表示的话,那FOXMAIl5.0将无法正确对邮件进行处理,邮件的内容部分被当成整个BASE64乱码文本,然而我登陆到263.net的网站去收信可以看到邮件被正常转化。
  而邮件的内容部分是通过两个减号--再连上分隔符来分隔各部分的。

  邮件主体从第一个--=====001_Dragon788446150325_=====开始,到第二个--=====001_Dragon788446150325_=====为内容的第一部分
  Content-Type: text/plain;
  charset="gb2312" Content-Transfer-Encoding: base64
  这两句说明了其类型及内容的字符集和编码。
  在这边是指定的是base64,然后一个空行,再加上“尊敬的dreamchild先生:\r\n    这是一封邮件。”这个字符串的BASE64编码构成邮件的正文部分。
  实际上,我们可以指定 Content-Transfer-Encoding:8bit然后就可以在正文部分用上原本表示了。

  接下来是隔开的附件1部分,
  多了一个Content-Disposition: attachment;以说明这部分是附件,以及相关的文件名filename="MM.GIF"。
  附件内容部分是把文件读成一个字节数组,然后把字节数组转为base64编码的字符串。这边的是mm.gif这个文件内容。

  第三部分是附件2 测试.txt 文件,测试.txt 又被foxmail处理成base64格式了,可以用原文表示的。
  最后完了之后,用“回车换行加一个.号再一个回车换行”表示Data部分的结束。

  如若正确过发送到达服务器,那就返回一个250状态。
  然后用Quit命令跟服务器3166

这个我基本试验了一把,果然出现了我猜测的问题:
530 Authentication required

就是说认证的问题。

如果按照 bborn 的说法,连接POP3服务器,问题是如果是WEBMAIL,没有POP3服务器的呢?我觉得还是走的SMTP。为什么前几年 MAIL EXPRESS 比较火,现在不怎么听说了,问题可能就是因为 现在的服务商基本上都是需要SMTP认证了。


字体:

Permanant URI永久地址 http://www.shengfang.org/blog/p/b2smtpdesign2.php
Trackback URI引用地址 http://www.shengfang.org/blog/tb.php?tb_id=1121044019

2005年7月11日09:06星期一  [PlugIn] 追踪此文的RSS
bborn在 2005年7月12日09:15星期二 评论:
你可以试想一下两个邮箱之间是怎么通信的

现在不用的原因 我想主要是为了防止垃圾邮件
Yippee 回复于 2005年7月12日13:52
谢谢指点! B2Smtp Becky!特快专递设想3

bborn在 2005年7月11日21:45星期一 评论:
实在不懂你回话与smtp有什么关系?
你不是看到源码了吗?
直接看源码说好了
Yippee 回复于 2005年7月11日22:36
我的意思是说,MX只是用来指定邮件服务器。我看了源码,也运行了源码,在我的机器上运行的,使用公司的邮箱地址,结果就是需要认证。说白了,就是这个认证的问题。这也是为什么很多人在网上会问有的邮箱特快专递可以,有的邮箱又不行的原因吧。我也试验过了NSLOOKUP 163.COM,同样的也有这个认证的问题。

bborn在 2005年7月11日17:54星期一 评论:
对不起 昨天我是讲错了一点 不是pop3  应该是mail exchange (应该是这样写的吧)

连接这个 我印象中并不需要认证
可能是现在很多邮箱为了防止垃圾邮件
对一些陌生的ip有限制

vckbase的文章讲的比较清楚吧
我原来还见过一个c#的程序
写的不错 可惜现在找不到了

大概过程是这样的 通过dns和邮箱的后缀.解析出邮箱的mx地址
连接到这里 剩下的工作就和smtp发信差不多
你可以用telnet模拟一下

你试想一下 普通的邮件发送过程是怎么样的?
你从sina邮箱发信到163
你连上sina的smtp就可以了
sina和163是怎么通信的呢?
我们要做的就是模拟这一部分工作
直接把信发到163的信箱里去

你再想想 如你所说 很多邮箱还没有smtp服务器了
hotmail ?
smtp 的全程是简单邮件传输协议 你可以看看rfc
和收取邮件没有关系

有问题 我们邮件讨论吧
bborn at 126 dot com
Yippee 回复于 2005年7月11日21:31

MX记录(Mail Exchange):邮件路由记录
说明:用户可以将该域名下的邮件服务器指向到自己的mail server上,然后即可自行操作控制所有的邮箱设置。您只需在线填写您服务器的主机名或主机IP地址,即可将您域名下的邮件全部转到您自己设定相应的邮件服务器上。
操作步骤:
a. 添加MX记录
第一步:点击"增加"按钮;
第二步:按照系统提示,请输入MX的级别,只能是数字(一般用1至100之间的数字表示),数字小表示优先级越高;
第三步:按照系统提示,请输入主机名或IP地址,如果您输入的是主机名,请您加上您的域名,并在结尾处加点。如. mail,bj-online.net.
b. 修改MX记录:在需要更改的MX记录中选中修改,修改时按系统提示做即可,注意:如输入的是主机名时,请在主机名后件加点
c. 删除MX记录:在需要删除的MX记录中选中删除 ,之后按系统提示填写大写的"YES"确认后即可删除。

也就是说,最终还是走的SMTP协议,而存在验证的问题。


称呼:    登陆   注册
   不注册,但记住我的信息
邮件:
(非必须)
评论: [UBB代码帮助]
粗体 斜体 下划线 链接 水平线 引用



验证码: 请输入你看见的数字
关闭UBB      提交时自动将内容复制到剪贴板

公告
Fire and Motion!

统计信息
[Yippee]||[统计]||日志:1839
在线: 13||用户: 2576 [列表]
今日:2269||到访:2854123
Rss:885231||评论:1604

最新日志

最新评论

友情链接

日历

最新引用

搜索

归档

杂项
Get RSS Feed (Version 2.0)
Get Atom Feed (Version 0.3)
编码:  UTF-8