c++ builder IdSMTP发送邮件,中文标题乱码.请问有高手会解决吗?

tianxiubao1 2012-09-01 04:28:03
c++ builder IdSMTP发送邮件,中文标题乱码.请问有高手会解决吗?下面是测试的代码,发送邮件正常且邮件内容为中文的也是正常,就是标题为中文时乱码,每个汉字显示为一个"?"号。或者各位有好的其它发邮件方式也可以告之一下,谢谢,请各位高手不吝赐教。


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服务器
...全文
917 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianxiubao1 2012-09-01
  • 打赏
  • 举报
回复
妖哥 有其它好的推荐吗?能发正常发邮件就可以
ccrun.com 2012-09-01
  • 打赏
  • 举报
回复
这个问题好像是BUG。建议楼主改用其他方法。
tianxiubao1 2012-09-01
  • 打赏
  • 举报
回复
这个只能试试,您那个代码是delphi的,bcb不知有类似的没
缘中人 2012-09-01
  • 打赏
  • 举报
回复
有类似这样的处理语句吗,如果加了俺也没辙了

capt := EncodeString('郵件主題');
ss := format('=?BIG5?B?%s?=', [capt]);
tianxiubao1 2012-09-01
  • 打赏
  • 举报
回复
是的 我现在就是这个问题,内容中英字符串都正常, 就是标题的中文全是"?"号。 跟它一样
缘中人 2012-09-01
  • 打赏
  • 举报
回复
xe2,是应该是最新的了,我没用过。

看看这个方法,
内容是好的,主题乱码
http://blog.csdn.net/liukeforever/article/details/4932491
tianxiubao1 2012-09-01
  • 打赏
  • 举报
回复
xe2 版本 应该就是最新的吧
tianxiubao1 2012-09-01
  • 打赏
  • 举报
回复
是的 c++ builder xe2,试了很久都不行,除了bcb自带的控件,还有其它推荐的吗?因为如果中文标准不支持的话,就没有任何用了。
缘中人 2012-09-01
  • 打赏
  • 举报
回复
貌似是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
缘中人 2012-09-01
  • 打赏
  • 举报
回复
cb2010?
【采用BPSK或GMSK的Turbo码】MSK、GMSK调制二比特差分解调、turbo+BPSK、turbo+GMSK研究(Matlab代码实现)【采用BPSK或GMSK的Turbo码】MSK、GMS内容概要:本文主要介绍了采用BPSK或GMSK调制方式的Turbo码相关技术研究,重点涵盖GMSK调制下的二比特差分解调方法、Turbo码与BPSK/GMSK调制相结合的系统性能分析,并提供了完整的Matlab代码实现方案。研究内容包括调制解调原理、编码结构设计、误码率仿真及系统优化等关键环节,旨在通过仿真手段验证所提出方案的有效性和可靠性,帮助研究人员深入理解现代数字通信系统中的关键技术和其实现方法。; 适合人群:具备一定通信原理和Matlab编程基础,从事无线通信、信号处理、编码理论等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握GMSK调制与Turbo码结合的系统设计与仿真方法;②学习二比特差分解调算法在实际通信系统中的应用;③通过Matlab代码实现提升对数字调制解调和信道编码技术的理解与实践能力;④为相关课题研究、毕业设计或工程项目提供参考和技术支持。; 阅读建议:建议读者结合文中提供的Matlab代码逐模块运行与调试,对照通信系统基本原理深入理解各环节功能,重点关注调制解调过程与Turbo译码的协同工作机制,并尝试修改参数以观察系统性能变化,从而达到理论与实践相结合的学习效果。
代码转载自:https://pan.quark.cn/s/a4b39357ea24 LA 1010 逻辑分析仪被视作一种效能卓越的数字信号分析设备,其核心功能在于对数字通信协议,例如I²C,进行检测与解构。本资源将集中阐述LA 1010的操作流程以及如何借助该设备对I²C协议的波形展开分析。 确保逻辑分析仪被正确地连接至目标系统是极为关键的环节。在运用LA 1010的过程中,必须将分析仪的通道0与通道1分别对应连接至目标装置的SCL(时钟)与SDA(数据)线路。务必保证连接的稳固性且无任何干扰因素,以此确保数据采集的精确度。 随后,需要设定采样参数。采样频率对于能否成功捕捉到信号具有决定性的作用。针对I²C协议,通常选用的采样频率范围介于100kHz到400kHz之间,这一范围的选择取决于实际应用场景中I²C总线的运行速度。然而,LA 1010所能达到的最高采样速率可能高达500MHz,因此需要根据具体需求进行相应的调整。此外,还必须精心挑选适配目标设备工作电压的电压等级,例如3.3V、5V或1.8V。 在软件操作层面,需要选取恰当的通道与协议种类,即I²C。一旦启动采样,逻辑分析仪便开始记录相关数据。软件界面通常实时展示波形图,为观察与分析提供便利。 关于I²C协议波形的解读,我们可以遵循以下步骤: 1. 总线处于空闲状态时:SCL与SDA均维持在高电平位置,这表明总线当前未进行数据传输。 2. 传输起始信号:当SCL处于高电平期间,SDA线从高电平转换至低电平,此动作标志着数据传输的开始。 3. 地址、数据及应答的识别:在每一个SCL高电平脉冲的持续时间内,SDA线上的电平状态代表了数据位。地址与数据的传输均为双向过程,而读写标识则由SDA线上的电平来...
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 在当前文档中,我们将详细研究在C#开发平台中借助BouncyCastle.Crypto库1.8.10版本达成中国的国家标准密码学方案,涵盖SM2、SM3以及SM4这几项技术。这些密码学方案在中国网络安全保障与数据维护领域具有核心地位,为本地化安全解决方案提供了坚实的技术支撑。 让我们首先掌握这三个国家密码算法的基本原理: 1. **SM2算法**:SM2是一种基于椭圆曲线密码体系(ECC)的公钥加密方案,主要用于数字签名和加密操作。它提供了一种高效且安全的身份确认和数据防护机制。 2. **SM3算法**:SM3是一种密码学哈希函数,与SHA-256类似,能够将任意长度的输入信息压缩为固定长度的摘要,常用于数据完整性的检验和确认。 3. **SM4算法**:SM4是一种分组密码方案,采用128位的分组大小和128位的密钥,适用于对称加密,广泛用于无线网络传输和存储数据的加密处理。 接下来,我们将逐步解析如何运用BouncyCastle.Crypto库在C#环境下实现这些密码学方案: **1. 引入库与配置开发环境** 在C#应用程序中,需要通过NuGet包管理工具或手动方式添加BouncyCastle库的引用。务必确保安装的是1.8.10版本。 ```csharp using Org.BouncyCastle.Crypto; using Org.BouncyCastle.Crypto.Parameters; using Org.BouncyCastle.Security; ``` **2. 实施SM2的加签与解签** SM2的签名过程和验证操作涉及椭圆曲线运算。必须创建一个私...

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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