首页 > 其他分享 >解决Indy10发送邮件主题乱码的问题

解决Indy10发送邮件主题乱码的问题

时间:2022-12-02 16:02:41浏览次数:37  
标签:发送 编码 安卓 平台 Indy10 乱码 源码 邮件

发现问题

最近在用delphi做一个自娱的跨平台邮件发送程序时,发现在发送主题为中文时,接收方会显示为?????。这个问题出现在安卓平台,同样的代码,windows平台是没问题的。通过查看邮件的源码发现,安卓程序发送的源码就是???,很明显就是没有对中文进行正确的编码。本以为将idmessage的charset设为utf-8就能解决,结果却事与愿违。
clip-27998453.jpg
于是进行调试分析,终于找到了原因。

解决问题

打开idmessage.pas源码,另存到项目根目录,定位到procedure TIdMessage.GenerateHeader;
这个过程。
找到这一行:
InitializeISO(HeaderEncoding, ISOCharSet);
clip-28499062.jpg
在这一行下面添加:

  {$IFDEF ANDROID}
  ISOCharSet:='UTF-8';
  HeaderEncoding:='B';
  {$ENDIF}

这是针对安卓平台的编译指令。原因就是InitializeISO这个过程初始化字符集数据时,采用的是windows平台的API,没有考虑安卓平台,导致编码识别出错,我们给它加上正确的编码指令,就完美解决了问题。

标签:发送,编码,安卓,平台,Indy10,乱码,源码,邮件
From: https://www.cnblogs.com/yulinsoft/p/16944715.html

相关文章

  • GitLab配置创建用户邮件提醒
    vigitlab.rbgitlab_rails['smtp_enable']=true#启动smtp功能gitlab......
  • PADS VX2.4 在WINDOWS 10乱码
    1,修改计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\FontsMicrosoftYaHei&MicrosoftYaHeiUI(TrueType)simsun.ttc默认:msyh.ttcMicroso......
  • Mysql中文乱码问题(unbutu)
    1.首先查看数据库里面的各种编码格式mysql>showvariableslike"%char%";+--------------------------+---------------+|Variable_name|Value|+--------------------......
  • 中文乱码怎么办
    ①settings-->editor  -->codestyle--> fileencodings中IEDEncoding和projectEncodingdefultencodingforpropertiesfiles三个设置为utf-8 ......
  • 1、发布春节通知(邮件行距问题)
    1、在outlook上面发布春节通知,发布之后要注意行距的大小,然后屏幕伸长,缩小之后,要看看行与行之间的距离有无问题。2、如何在outlook上面调整行距,首先把【固定行距】缩小为0,......
  • 机器学习之垃圾邮件分类2
    读取defread_dataset(file_path='../data/SMSSpamCollection'):"""读取数据集:return:返回数据和标题"""withopen(file_path,encoding='utf-8')as......
  • Charles乱码?不存在的!
    导言Charles是一个网络抓包工具,我们可以用它来做App的抓包分析,获取App运行过程中发生的所有网络请求和响应内容,这就和Web端浏览器的开发者工具 Network部分看到的......
  • 一般用到的短信,邮件换行符号
    短信XML拼接换行:回车符(
)换行符(
)JSON拼接换行:换行符(\\n)回车符(\\r)常用:第一种:使用System.out.println()//这是换一行。 第二种:使用System.out.print("\n");/......
  • 2020年ArcGIS (ArcMap各版本)导出shape用EXCEL打开时,属性表中文乱码问题_JGiser的博客
    打开CMD,如果是ArcMap,输入如下命令:regaddHKEY_CURRENT_USER\Software\ESRI\Desktop10.6\Common\CodePage/vdbfDefault/tREG_SZ/d936/fDesktop后面跟的是ArcGIS的......
  • Charles中contents出现中文乱码问题解决
    检查证书是否过期,如过期,先重置过期证书再安装证书  SSLProxyingSettings中include设置*:443  即可解决contents中文乱码问题......