现象:

在使用TIdSMTP, TIdPOP3收发电子邮件时,第一步要验证,验证的时候出现错误,但错误信息是乱码,都是一些小方框,不知道是什么出错信息。

原因:

出错信息是中文的,采用的中文编码,但TIdSMTP, TIdPOP3是按英文来解析这些信息的,所以读出来的是乱码。

解决方法:

需要修改Indy的源码,下面三个文件需要修改,找到这三个文件后,将这三个文件跟当前工程源文件放在一起,然后添加到工程中就可以了,避免下次重新安装Delphi后被修改的文件内容丢失了。

1、IdSMTP.pas 大概355行的位置,将两个SendCmd函数后面增加参数 IndyTextEncoding_OSDefault

          LEncoder := TIdEncoderMIME.Create(nil);trySendCmd('AUTH LOGIN', 334);if SendCmd(LEncoder.Encode(Username), [235, 334], IndyTextEncoding_OSDefault) = 334 then begin  //添加了参数 IndyTextEncoding_OSDefault SendCmd(LEncoder.Encode(Password), 235, IndyTextEncoding_OSDefault); //添加了参数 IndyTextEncoding_OSDefaultend;finallyLEncoder.Free;end;

2、IdSMTPBase.pas 大概282行位置,将SendCmd函数后面增加参数 IndyTextEncoding_OSDefault

  SendCmd(LCmd, MAILFROM_ACCEPT, IndyTextEncoding_OSDefault); //添加了参数 IndyTextEncoding_OSDefaulttryWriteRecipientsNoPipelining(ARecipients);SendCmd(DATA_CMD, DATA_ACCEPT);SendMsg(AMsg);SendCmd('.', DATA_PERIOD_ACCEPT);    {Do not Localize}except

3、IdPOP3.pas 大概331,332行的位置,将两个SendCmd函数后面增加参数 IndyTextEncoding_OSDefault

    patUserPass:begin //classic methodSendCmd('USER ' + Username, ST_OK, IndyTextEncoding_OSDefault); //添加了参数 IndyTextEncoding_OSDefaultSendCmd('PASS ' + Password, ST_OK, IndyTextEncoding_OSDefault); //添加了参数 IndyTextEncoding_OSDefaultend;//if APOPpatSASL:

使用 Indy 的 TIdSMTP, TIdPOP3收发邮件在验证账户的时候出现错误乱码解决方法相关推荐

  1. 用Delphi中的Indy控件实现收发邮件

    这几天心里颇不宁静,不是因为项目延期,而是因为自己几个月前做的邮件发送程序至今无任何进展,虽然一向谦虚的人在网上发贴总以"小弟"自称.也发过N多关于此类问题的贴子,但总是收益甚少, ...

  2. 【VBS发邮件】乱码解决方法

    function Send_mail(You_Account,You_Password,Send_Email,Send_Email2,Send_Topic,Send_Body,Send_Attachm ...

  3. java 163邮件发送 ssl协议失败_163邮箱开启SMTP服务发送邮件出现535错误的解决方法...

    摘要: 用老的163邮箱可以直接设置SMTP发送邮件,使用新注册的却不行!折腾了几个小时后终于找到了方法,然后destoon就可以成功的发送邮件了..... 好久没有写关于destoon网站管理系统的 ...

  4. 新建Exchange服务器 Outlook端收发邮件报错:0x80040201

    该问题源自于微软Outlook的一个缺陷,很遗憾,这个缺陷尽然直到Office 2010 beta仍然没有修复. [问题现象] 邮件接收与发送,能接收,发送的时候报"未知问题... 0x80 ...

  5. 马云自嘲只会用电脑收发邮件,网友:马老师的话,听听就行了

    近日,马云的一番言论又引起了众多网友的热议.其在一则采访中自嘲,称自己只会用电脑收发邮件,言论一出,立即在互联网匿名社区炸锅,有网友表示:马老师的话,听听就行了云云. 如下则是另外一些网友的评论:混迹 ...

  6. Exchange 2007更改用户收发邮件大小限制

    Exchange 2007更改用户收发邮件大小限制 exchange 2007更改用户收发邮件大小限制 2009-12-01 MS Exchange 2007默认附件设置为10M,用户通常要修改这些默 ...

  7. Exchange2003中实现两个邮件系统收发邮件配置实例

    在exchange中实验两个exchange邮件系统间收发邮件有两种方式: 1. 配置外部DNS和虚拟服务器,实现邮件系统的收发(可以不是特定). 2. 配置连接器,实现特定两个邮件系统之间的收发. ...

  8. Python收发邮件

    发送邮件使用SMTP协议,接受POP3或IMAP: 创建邮件内容email模块,发送邮件smtplib模块.发送邮件比较简单,只需先创建SMTP对象,登录服务器后根据发收邮箱地址发送即可: POP3接 ...

  9. 邮件服务器收发邮件时常发生的问题

    绝大部分发信失败都是因为DNS设置不当或防火墙设置错误引起的.您需确认: 1) 是否设置有DNS服务器地址: 2) 所设置的DNS服务器地址是否是有效的,此DNS服务器是否正常工作,可否进行正常DNS ...

最新文章

  1. python 随机打乱样本
  2. 关于ECS设计以及MVC分层设计和组件化设计的思考和总结(这个标题就问你长不长)
  3. python开发windows界面_electron作为python界面开发入门
  4. anaconda安装环境变量问题、python环境配置问题以及其他
  5. POJ2417 Discrete Logging | A,C互质的bsgs算法
  6. QQ连连看棋盘数组找法:
  7. 友益文书类似软件_网易有道词典笔,让你的英文书也有实时翻译功能
  8. 【dp】POJ-2817
  9. Python基础-列表(列表常用函数/列表遍历)
  10. linux查看内核分区,如何根据bootloader中MTD分区信息修改linux内核中的MTD分区
  11. linux进程管理相关概念
  12. 信息管理系统技术开发合同书(补充协议)模板
  13. python删除标点_python – 使用pandas快速删除标点符号
  14. flush和evit
  15. SG3525matlab,基于SG3525的BOOST变换器
  16. SOLIDWORKS 2023出详图和工程图新增功能
  17. python足球联赛赛程_足球联赛赛程表工作表
  18. Android_Vibrator(振动器)使用解析
  19. 2016年,对我影响最大的三本书
  20. 很详细、很移动的Linux makefile教程:介绍,总述,书写规则,书写命令,使用变量,使用条件推断,使用函数,Make 的运行,隐含规则 使用make更新函数库文件 后序...

热门文章

  1. 三个月准备研究生数学建模得二等国奖
  2. VS2005 CBRUSH笔刷的使用
  3. MiniGPT-4:看图聊天、教学、创作、搭网站......还开源了
  4. MySQL 留存率和复购率的场景分析
  5. 自考计算机组装与维修试卷,自考计算机组装考试习题.doc
  6. 关于计算机应用基础论文,关于计算机应用基础论文范文.docx
  7. 奋斗吧,程序员——第四十一章 今日种种,似水无痕;明夕何夕,君已陌路
  8. 非计算机专业想进阿里,大学毕业后想进阿里巴巴?那一定要选这几所大学,录取几率非常大!...
  9. 推进中学理化生实验操作考场建设,培养学生的核心素养
  10. 12.15黄金白银TD短线布局建议,期货原油最新走势分析