bborn 概念错误 直投是发给对方的pop3服务器 没有smtp什么事  再想想 http://www.yippeesoft.com/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@peoplemail.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认证了。

原创文章,转载请注明: 转载自YippeeSoft开心软件

本文链接地址: B2Smtp Becky!特快专递设想2

历史博文

标签:, , ,