BCB 2010 INDY控件貌似有问题, 2011的有人用过没?

benbenxiaoluchi 2010-10-04 11:12:16
2010自带的 IdSmtp 控件发邮件, 英文正常。 中文报 RangeCheck error ,据说是idsmtp的问题。
不知道2011的 有没有问题。。 。 哪位大侠用过啊 。

代码也贴出来吧。 谁有2011和2010的 可以试试,对比下, 呵呵。

(DM是个Data Module,上面放了一个IdSMTP和IdMessage控件)

DM->IdSMTP1->Host = "smtp.163.com";
DM->IdSMTP1->Port = 25;
DM->IdSMTP1->IOHandler = DM->m_IdSSLIOHandlerSocketOpenSSL;
DM->IdSMTP1->UseTLS = utNoTLSSupport;


DM->IdSMTP1->Username = L"name@163.com";
DM->IdSMTP1->Password = L"passwd" ;
DM->IdSMTP1->AuthType = satDefault;
DM->IdSMTP1->Authenticate();


DM->IdMessage1->ContentType = "text/html";
DM->IdMessage1->Subject = "TEST"; // 邮件标题,只要是汉字, 就会报错 RangeCheck error,英没问题. C++ BUILDER 2010自带的indy

DM->IdMessage1->ReceiptRecipient->Address = L"xxxxx@163.com";
if (!DM->IdSMTP1->Connected()) {
try {
DM->IdSMTP1->Connect();
}catch(...){
Application->MessageBox(L"连接邮件服务器失败!", L"提示", MB_OK + MB_ICONINFORMATION);
return;
}
}
if (DM->IdSMTP1->Connected()) {
try{
DM->IdSMTP1->Send(DM->IdMessage1);
}catch(...){
Application->MessageBox(L"发送邮件失败!", L"提示", MB_OK + MB_ICONWARNING);
return;
}
}

Application->MessageBox(L"邮件发送成功!", L"提示", MB_OK + MB_ICONINFORMATION);
...全文
264 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
benbenxiaoluchi 2010-10-12
  • 打赏
  • 举报
回复
谢谢各位 ,特别是僵哥。 在另一个帖子中(http://topic.csdn.net/u/20100929/14/11329986-0714-488e-9a30-e6d3b60bd5bd.html?seed=1021961181&r=68977793#r_68977793)
给予了不厌其烦的支持。 谢谢。
luoshupeng 2010-10-08
  • 打赏
  • 举报
回复
没有用过
僵哥 2010-10-07
  • 打赏
  • 举报
回复
刚才测试了下,下载最新的Indy控件包,并更新即可解决问题。http://indy.fulgan.com/ZIP/Indy10Tiburon_4444.zip
bigfog 2010-10-07
  • 打赏
  • 举报
回复
我看是对unicodestring支持不太好,特别是有中文时就出问题
Jonix 2010-10-06
  • 打赏
  • 举报
回复
indy 在2010中的确有严重缺陷。
liyan 2010-10-06
  • 打赏
  • 举报
回复
indy我就没见好用的时候!
能坚持用BCB的不多了。
能技术用BCB还使用三方VCL的更不多了。
支持楼主一下,纯道义!
我很久没碰BCB了。
僵哥 2010-10-05
  • 打赏
  • 举报
回复
问题出在编码的过程当中只处理了Unicode字符的低字节,并且用Word(双字节)在一个0~255的码表当中查表。所以造成了"Range check error."。

要么替换TIdMessage的实现,即新写一个TIdMessage的超类来完成它的工作;要么修改Indy代码进行改写;要么干脆不用。可以试试OverByte的ICS系列套件。
我来看看CB 2010-10-05
  • 打赏
  • 举报
回复
下载测试看看
美到心痛 2010-10-05
  • 打赏
  • 举报
回复
把TIdMessage的charset属性改为utf-8,看行不行?应该不行,呵
ydlchina 2010-10-05
  • 打赏
  • 举报
回复
看你另贴回复,看是否有用
我不懂电脑 2010-10-04
  • 打赏
  • 举报
回复
indy系列,在bcb6.0的时候用了一下,问题很多,就没怎么用了。
BORLANDSUN 2010-10-04
  • 打赏
  • 举报
回复
2007版本挺稳定的。2009以上都是Unicode版本了,问题多多,不敢多用。

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧