Indy9.0的TIdSmtp控件如何发送主题为中文且长度较长需要折叠的邮件??? ( 积分: 100 )

  • 主题发起人 主题发起人 trueiron
  • 开始时间 开始时间
T

trueiron

Unregistered / Unconfirmed
GUEST, unregistred user!
如主题为:E:/STUDY/DELPHI之未经证实的葵花宝典2.7.CHM_4OAABBEEDDFF.BRK
带此文件的附件。
但发到21cn,163.com,126.com上都是乱码的。在163上的信头信息如下:
Received: from XXX (unknown [218.16.80.62])
by smtp2 (Coremail) with SMTP id 6QBe9BpL4kFymVxQ.2
for <trueiron@126.com>; Mon, 10 Jan 2005 17:30:29 +0800 (CST)
X-Originating-IP: [218.16.80.62]
From: TRUEIRON@126.COM
Subject:
=?GB2312?B?RTpcU1RVRFlcREVMUEhJ1q7OtL6t1qTKtbXEv/u7qLGmteQyLjcuQ0hNXzkx?=
Message-Id: <41E24B35.0C0C40.10724>
Date: Mon, 10 Jan 2005 17:30:29 +0800 (CST)

=?GB2312?B?Rjk3Q0Y2MTk3Qy5CUks=?=
To: TRUEIRON@126.COM
Content-Type: multipart/mixed; boundary="=_NextPart_2rfkindysadvnqw3nerasdf"
MIME-Version: 1.0
Sender: TRUEIRON@126.COM
Date: Mon, 10 Jan 2005 17:31:16 +0800
X-Priority: 3
X-Library: Indy 9.00.10

This is a multi-part message in MIME format

--=_NextPart_2rfkindysadvnqw3nerasdf
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

Email Driver

--=_NextPart_2rfkindysadvnqw3nerasdf
Content-Type: application/octet-stream;
name="DELPHI之未经证实的葵花宝典2.7.CHM_7OF10.BRK"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="DELPHI之未经证实的葵花宝典2.7.CHM_7OF10.BRK"

MH8LY180eOlrF6amSI5ViAdhpFedtEipm2NvWs3x9GvJXyMvgmExsOcedUljZtoa6y0RQlLjTUSV
2RsDRR/CTiYpfgxOagyaFp0JGz+G6hR7hAYJ81gwSgEwSHEqZAJR/EiGn0DISbvsCmpBWdEX5ISX。。。。。。

其中,“4OAABBEEDDFF”是“7OF10”的编码确切是什么可不用理会。
问题是中文的主题过长时,TIdSmtp会把它折叠,但不知为什么,网站的邮件服务器解析邮件时不能识别而把Message-Id插到中间,致使乱码。

望各位富翁们指点指点,不胜感激!!
 
如主题为:E:/STUDY/DELPHI之未经证实的葵花宝典2.7.CHM_4OAABBEEDDFF.BRK
带此文件的附件。
但发到21cn,163.com,126.com上都是乱码的。在163上的信头信息如下:
Received: from XXX (unknown [218.16.80.62])
by smtp2 (Coremail) with SMTP id 6QBe9BpL4kFymVxQ.2
for <trueiron@126.com>; Mon, 10 Jan 2005 17:30:29 +0800 (CST)
X-Originating-IP: [218.16.80.62]
From: TRUEIRON@126.COM
Subject:
=?GB2312?B?RTpcU1RVRFlcREVMUEhJ1q7OtL6t1qTKtbXEv/u7qLGmteQyLjcuQ0hNXzkx?=
Message-Id: <41E24B35.0C0C40.10724>
Date: Mon, 10 Jan 2005 17:30:29 +0800 (CST)

=?GB2312?B?Rjk3Q0Y2MTk3Qy5CUks=?=
To: TRUEIRON@126.COM
Content-Type: multipart/mixed; boundary="=_NextPart_2rfkindysadvnqw3nerasdf"
MIME-Version: 1.0
Sender: TRUEIRON@126.COM
Date: Mon, 10 Jan 2005 17:31:16 +0800
X-Priority: 3
X-Library: Indy 9.00.10

This is a multi-part message in MIME format

--=_NextPart_2rfkindysadvnqw3nerasdf
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

Email Driver

--=_NextPart_2rfkindysadvnqw3nerasdf
Content-Type: application/octet-stream;
name="DELPHI之未经证实的葵花宝典2.7.CHM_7OF10.BRK"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="DELPHI之未经证实的葵花宝典2.7.CHM_7OF10.BRK"

MH8LY180eOlrF6amSI5ViAdhpFedtEipm2NvWs3x9GvJXyMvgmExsOcedUljZtoa6y0RQlLjTUSV
2RsDRR/CTiYpfgxOagyaFp0JGz+G6hR7hAYJ81gwSgEwSHEqZAJR/EiGn0DISbvsCmpBWdEX5ISX。。。。。。

其中,“4OAABBEEDDFF”是“7OF10”的编码确切是什么可不用理会。
问题是中文的主题过长时,TIdSmtp会把它折叠,但不知为什么,网站的邮件服务器解析邮件时不能识别而把Message-Id插到中间,致使乱码。

望各位富翁们指点指点,不胜感激!!
 
真的没人知道吗????
 
也在学用indy
关注。。。

没有带解码的收发mail的例程参考,痛苦ing。。。
楼主你有吗?
 
我遇到过类似的问题。不过用foxmail下载邮件后就一切正常了,很茫然。你用的是什么操作系统?
 
to fjjs
Indy 里有有关Email解码与编码的控件,很易用的,看一下帮助就知道了!
 
to sherlockye
我用的是win2000但我想与操作系统无关。应该是Indy控件的bug!!
 
'=?GB2312?B' 要base64解密的,不然就是乱码,下面是我用的一个解密的函数
function Base64Decode(strInput : string) : string;
var
strDecode : string;
posStart: Integer;
posEnd : Integer;
begin
while pos('=?gb2312?b?',lowercase(strInput)) > 0 do
begin
try
posStart := pos('=?gb2312?b?',lowercase(strInput));
posEnd := pos('?=',lowercase(strInput));
strDecode := strDecode + copy(strInput,1,posStart-1) + IdDecoderMIME1.DecodeString(copy(strInput,posStart+11,posEnd-posStart-11));
strInput := copy(strInput,posEnd+2,length(strInput)-posEnd-1);
finally
Application.ProcessMessages;
end;
end;
strDecode := strDecode + strInput;
result := strDecode;
end;
但是我遇到的问题是邮件正文的解码问题,我的是INDY7。很是郁闷。
 
修改EncodeHeader函数(IdCoderHeader.pas)
T := T + EndEncode + #13#10#9 + BeginEncode;
=>
T := T + EndEncode + #10#9 + BeginEncode;
重新编译,复制到Delphi的lib目录下面
 
不好意思现在才给分呀!
谢谢各位呀!!
 
后退
顶部