IdMessage1->ContentType = "text/html; charset='utf-8'";
IdMessage1->CharSet = "utf-8";
IdMessage1->ContentTransferEncoding = "base64";
IdMessage1->AttachmentEncoding = "MIME"; // 识别默认编码机制用于邮件部分
IdMessage1->Encoding = meDefault;
IdMessage1->Recipients->EMailAddresses = "258822@qq.com"; // 邮件接收者的信箱
IdMessage1->From->Text = "tcv@163.com"; // 邮件发送者的信箱
IdMessage1->Subject = "中国"; //汉字乱码,字母和数字正常
IdMessage1->Body->Add("利用C++Builder中的IdSMTP和IdMessage控件发送电子邮件"); // 邮件内容
IdMessage1->CCList->EMailAddresses = "258822@qq.com"; // 邮件的抄送地址
IdMessage1->Priority = mpNormal;
if (IdSMTP1->Connected()) {
IdSMTP1->Disconnect();
}
IdSMTP1->Host = "smtp.163.com"; // SMTP服务器
IdSMTP1->Username = "tcv@163.com"; // 163邮箱的用户名
IdSMTP1->Password = "12346"; // 163邮箱的密码
IdSMTP1->Port = 25; // 端口
IdSMTP1->Connect(); // 连接SMTP服务器
if (IdSMTP1->Authenticate()) // 用户验证
{
Memo1->Lines->Add("登录服务器验证成功!");
IdSMTP1->Send(IdMessage1); // 发送邮件
Memo1->Lines->Add("邮件发送成功");
}
IdSMTP1->Disconnect(); // 中断连接SMTP服务器
11 个解决方案
#1
cb2010?
#2
貌似是indy控件的bug
主要原因还是indy10的BUG
CopyTIdString只是简单的1对1复制 也就是说中文的话只复制了两个字节中的第一个字节
// do just a byte to byte copy with no translation. VCL uses ANSI or MBCS.
// With MBCS we still map 1:1
主要原因还是indy10的BUG
CopyTIdString只是简单的1对1复制 也就是说中文的话只复制了两个字节中的第一个字节
// do just a byte to byte copy with no translation. VCL uses ANSI or MBCS.
// With MBCS we still map 1:1
#3
是的 c++ builder xe2,试了很久都不行,除了bcb自带的控件,还有其它推荐的吗?因为如果中文标准不支持的话,就没有任何用了。
#4
#5
xe2 版本 应该就是最新的吧
#7
是的 我现在就是这个问题,内容中英字符串都正常, 就是标题的中文全是"?"号。 跟它一样
#8
有类似这样的处理语句吗,如果加了俺也没辙了
capt := EncodeString('郵件主題');
ss := format('=?BIG5?B?%s?=', [capt]);
capt := EncodeString('郵件主題');
ss := format('=?BIG5?B?%s?=', [capt]);
#9
这个只能试试,您那个代码是delphi的,bcb不知有类似的没
#10
这个问题好像是BUG。建议楼主改用其他方法。
#11
妖哥 有其它好的推荐吗?能发正常发邮件就可以
#1
cb2010?
#2
貌似是indy控件的bug
主要原因还是indy10的BUG
CopyTIdString只是简单的1对1复制 也就是说中文的话只复制了两个字节中的第一个字节
// do just a byte to byte copy with no translation. VCL uses ANSI or MBCS.
// With MBCS we still map 1:1
主要原因还是indy10的BUG
CopyTIdString只是简单的1对1复制 也就是说中文的话只复制了两个字节中的第一个字节
// do just a byte to byte copy with no translation. VCL uses ANSI or MBCS.
// With MBCS we still map 1:1
#3
是的 c++ builder xe2,试了很久都不行,除了bcb自带的控件,还有其它推荐的吗?因为如果中文标准不支持的话,就没有任何用了。
#4
要通过转换或升级控件
http://topic.****.net/u/20090210/20/010dcf43-92af-44af-ac9b-264eab436616.html
http://topic.****.net/u/20081013/11/c1c5ecd2-4bc4-4b9c-9497-edc347a4fe9f.html
以前有高人研究过了啊
http://topic.****.net/u/20090210/20/010dcf43-92af-44af-ac9b-264eab436616.html
http://topic.****.net/u/20081013/11/c1c5ecd2-4bc4-4b9c-9497-edc347a4fe9f.html
以前有高人研究过了啊
#5
xe2 版本 应该就是最新的吧
#6
#7
是的 我现在就是这个问题,内容中英字符串都正常, 就是标题的中文全是"?"号。 跟它一样
#8
有类似这样的处理语句吗,如果加了俺也没辙了
capt := EncodeString('郵件主題');
ss := format('=?BIG5?B?%s?=', [capt]);
capt := EncodeString('郵件主題');
ss := format('=?BIG5?B?%s?=', [capt]);
#9
这个只能试试,您那个代码是delphi的,bcb不知有类似的没
#10
这个问题好像是BUG。建议楼主改用其他方法。
#11
妖哥 有其它好的推荐吗?能发正常发邮件就可以