被困公司!!(200分)

  • 主题发起人 主题发起人 csboy
  • 开始时间 开始时间
C

csboy

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠好,我正在做一个邮件代理项目,遇一难题不解,被老板“锁于”公司中,还
望帮忙。
我做的代理用于将本地邮件发至网上和将网上邮件收至本地(以文本形式保存)后
再用outlook等察看,问题出现在收信,凡是用outlook等发的信,用我的代理收到本地
后,再用outlook看信时,内容就是乱码,即便是用outlook直接受也一样,但去网站上
看信没问题。
下面是一封用我的代理收到本地后还没有取走的信的内容:
[Reverse Path]
From=<hanxiao0120@sohu.com>

[Forward Path]
To=<xiaohan@zzz.com>

[Retry]
Performed=0
Remaining=5

[Message]
Received: FROM zzz.com BY 192.168.0.100 ; Thu, 21 Feb 2002 11:36:27 +08:00
From: xiaohan"<xiaohan@zzz.com>
To: xiaohan@zzz.com
CC:
Subject: s
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="====================54535ieyswj===="


--====================54535ieyswj====
Content-Type: text/plain; charset=us-ascii

cw0K


File "text_1.tmp" extracted
--====================54535ieyswj====
Content-Type: application/octet-stream; name="text_1.tmp"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="text_1.tmp"

PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBU
cmFuc2l0aW9uYWwvL0VOIj4NCjxIVE1MPjxIRUFEPg0KPE1FVEEgY29udGVu
dD0idGV4dC9odG1sOyBjaGFyc2V0PWdiMjMxMiIgaHR0cC1lcXVpdj1Db250
ZW50LVR5cGU+DQo8TUVUQSBjb250ZW50PSJNU0hUTUwgNS4wMC4yOTIwLjAi
IG5hbWU9R0VORVJBVE9SPg0KPFNUWUxFPjwvU1RZTEU+DQo8L0hFQUQ+DQo8
Qk9EWSBiZ0NvbG9yPSNmZmZmZmY+DQo8RElWPjxGT05UIHNpemU9Mj5zPC9G
T05UPjwvRElWPjwvQk9EWT48L0hUTUw+DQo=
--====================54535ieyswj====--
此外本来没有附件的信用outlook收后就会有一个*.tmp的附件,里面是html格式
的文档。以上种种都是我的
困难,还望各位多多帮助,即使是蛛丝马迹也行,以早日让我得成正果,逃出回家!!
 
都7个人看过了怎么也没人回答呀!200分都不要,还是都不会呢!
看来今晚又要睡公司了[:(]
 
从你的Mail内容上看,确实是一个附件啊?!如果是HTML格式文档头部就应该是:
Content-Type: text/html;
charset="gb2312"
Content-Transfer-Encoding: base64
用outlook编一封邮件,看看内容应该是很清楚的。
 
我以前做过这样的程序,可惜代码没了:(
 
其实就是header段的charset那儿的问题,如果你的charset没有赋值的话(foxmail发的好象
没设置charset这个值),outlook就把这邮件当然是一个e文字符集的邮件来看,
当然是乱码啦。你收下来的时候可以自己把charset设成gb2312之类的,用outlook看绝对没
乱码。
 
还有我用outlook试发了一封信,内容很简单是:快回家。
在网上读当然没问题,可使用我做的软件收下来后再用outlook读时,这三个字就成了
=BF=EC=BB=D8=BC=D2,请问有和解决办法?我做的软件是用nmpop3收的,然后用nmsmtp去
连我自己的sever,谢谢
 
=BF=EC=BB=D8=BC=D2是QUOTED-PRINTABLE的编码方式,这是标准的编码。
foxmail对汉字多数采用这种编码方式。解码方式可以看MIME协议。
可以这么看“快回家”中的
快 = char($BF) + char($EC)
回 =char($BB) + char($D8)
。。。
在outlook中显示乱码是因为邮件头中缺少信息,如果加上
Content-Transfer-Encoding: QUOTED-PRINTABLE; charset=gb2312;
就没有问题了。
 
此外本来没有附件的信用outlook收后就会有一个*.tmp的附件,里面是html格式的文档
--这是也是正确的,如果tmp中的内容是Html信息,邮件头的Content-Type应该用 multipart/alternative;


Content-Type: application/octet-stream; name="text_1.tmp"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="text_1.tmp"
--这里也是错误的。Content-Disposition:也是指明是附件了。
应该是
Content-Type: text/html;
charset="GB2312"
Content-Transfer-Encoding: base64

下面给你一个例子
Reply-To: xqzeng@263.net
From: "xqzeng" <xqzeng@263.net>
To: xqzeng@263.net
Subject: test
Date: Fri, 22 Feb 2002 10:55:49 GMT
Message-Id: DreamMailOutBox
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----=_NextPart_02022210554900082102342_002"
X-Priority: 3
X-Mailer: DreamMail Ver 1.13 (build 2002.01.01)

------=_NextPart_02022210554900082102342_002
Content-Type: text/plain;
charset="GB2312"
Content-Transfer-Encoding: base64

eHF6ZW5nOiANCqOgo6DE47rDo6EgDQqjoKOgIA0Ko6CjoKOgo6CjoKOgo6CjoNbCIA0KvrSjoSAN
CqOgo6CjoKOgo6CjoKOgo6B4cXplbmejrHhxemVuZ0AyNjMubmV0IA0Ko6CjoKOgo6CjoKOgo6Cj
oDIwMDLE6jAy1MIyMsjVIA0K

------=_NextPart_02022210554900082102342_002
Content-Type: text/html;
charset="GB2312"
Content-Transfer-Encoding: base64

PEhUTUw+DQo8SEVBRD4NCjxUSVRMRT48IS0tVElUTEUtLT48L1RJVExFPg0KPG1ldGEgaHR0cC1l
cXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9R0IyMzEyIj4N
CjwvSEVBRD4NCjxCT0RZIGxlZnRNYXJnaW49NSBzdHlsZT0iRk9OVC1GQU1JTFk6IMvOzOU7IEZP
TlQtU0laRTogOXB0IiB0b3BNYXJnaW49NT4NCjxESVY+eHF6ZW5nOiA8L0RJVj4NCjxESVY+o6Cj
oMTjusOjoSA8L0RJVj4NCjxESVY+o6CjoCA8L0RJVj4NCjxESVY+PC9ESVY+DQo8RElWPjwvRElW
Pg0KPERJVj6joKOgo6CjoKOgo6CjoKOg1sIgPC9ESVY+DQo8RElWPr60o6EgPC9ESVY+DQo8RElW
PjwvRElWPg0KPERJVj48L0RJVj4NCjxESVY+o6CjoKOgo6CjoKOgo6CjoHhxemVuZ6OseHF6ZW5n
QDI2My5uZXQgPC9ESVY+DQo8RElWPqOgo6CjoKOgo6CjoKOgo6AyMDAyxOowMtTCMjLI1SA8L0RJ
Vj4NCjwvQk9EWT4NCjwvSFRNTD4NCg==

------=_NextPart_02022210554900082102342_002--

 
你是否对收到的信件进行去除空格的处理了?
 
多人接受答案了。
 
你可以使用INDY9
直接将邮件存为 .eml格式文件
 
后退
顶部