使用 Indy 的 TIdSMTP, TIdPOP3收发邮件在验证账户的时候出现错误乱码解决方法
现象:
在使用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收发邮件在验证账户的时候出现错误乱码解决方法相关推荐
- 用Delphi中的Indy控件实现收发邮件
这几天心里颇不宁静,不是因为项目延期,而是因为自己几个月前做的邮件发送程序至今无任何进展,虽然一向谦虚的人在网上发贴总以"小弟"自称.也发过N多关于此类问题的贴子,但总是收益甚少, ...
- 【VBS发邮件】乱码解决方法
function Send_mail(You_Account,You_Password,Send_Email,Send_Email2,Send_Topic,Send_Body,Send_Attachm ...
- java 163邮件发送 ssl协议失败_163邮箱开启SMTP服务发送邮件出现535错误的解决方法...
摘要: 用老的163邮箱可以直接设置SMTP发送邮件,使用新注册的却不行!折腾了几个小时后终于找到了方法,然后destoon就可以成功的发送邮件了..... 好久没有写关于destoon网站管理系统的 ...
- 新建Exchange服务器 Outlook端收发邮件报错:0x80040201
该问题源自于微软Outlook的一个缺陷,很遗憾,这个缺陷尽然直到Office 2010 beta仍然没有修复. [问题现象] 邮件接收与发送,能接收,发送的时候报"未知问题... 0x80 ...
- 马云自嘲只会用电脑收发邮件,网友:马老师的话,听听就行了
近日,马云的一番言论又引起了众多网友的热议.其在一则采访中自嘲,称自己只会用电脑收发邮件,言论一出,立即在互联网匿名社区炸锅,有网友表示:马老师的话,听听就行了云云. 如下则是另外一些网友的评论:混迹 ...
- Exchange 2007更改用户收发邮件大小限制
Exchange 2007更改用户收发邮件大小限制 exchange 2007更改用户收发邮件大小限制 2009-12-01 MS Exchange 2007默认附件设置为10M,用户通常要修改这些默 ...
- Exchange2003中实现两个邮件系统收发邮件配置实例
在exchange中实验两个exchange邮件系统间收发邮件有两种方式: 1. 配置外部DNS和虚拟服务器,实现邮件系统的收发(可以不是特定). 2. 配置连接器,实现特定两个邮件系统之间的收发. ...
- Python收发邮件
发送邮件使用SMTP协议,接受POP3或IMAP: 创建邮件内容email模块,发送邮件smtplib模块.发送邮件比较简单,只需先创建SMTP对象,登录服务器后根据发收邮箱地址发送即可: POP3接 ...
- 邮件服务器收发邮件时常发生的问题
绝大部分发信失败都是因为DNS设置不当或防火墙设置错误引起的.您需确认: 1) 是否设置有DNS服务器地址: 2) 所设置的DNS服务器地址是否是有效的,此DNS服务器是否正常工作,可否进行正常DNS ...
最新文章
- python 随机打乱样本
- 关于ECS设计以及MVC分层设计和组件化设计的思考和总结(这个标题就问你长不长)
- python开发windows界面_electron作为python界面开发入门
- anaconda安装环境变量问题、python环境配置问题以及其他
- POJ2417 Discrete Logging | A,C互质的bsgs算法
- QQ连连看棋盘数组找法:
- 友益文书类似软件_网易有道词典笔,让你的英文书也有实时翻译功能
- 【dp】POJ-2817
- Python基础-列表(列表常用函数/列表遍历)
- linux查看内核分区,如何根据bootloader中MTD分区信息修改linux内核中的MTD分区
- linux进程管理相关概念
- 信息管理系统技术开发合同书(补充协议)模板
- python删除标点_python – 使用pandas快速删除标点符号
- flush和evit
- SG3525matlab,基于SG3525的BOOST变换器
- SOLIDWORKS 2023出详图和工程图新增功能
- python足球联赛赛程_足球联赛赛程表工作表
- Android_Vibrator(振动器)使用解析
- 2016年,对我影响最大的三本书
- 很详细、很移动的Linux makefile教程:介绍,总述,书写规则,书写命令,使用变量,使用条件推断,使用函数,Make 的运行,隐含规则 使用make更新函数库文件 后序...
热门文章
- 三个月准备研究生数学建模得二等国奖
- VS2005 CBRUSH笔刷的使用
- MiniGPT-4:看图聊天、教学、创作、搭网站......还开源了
- MySQL 留存率和复购率的场景分析
- 自考计算机组装与维修试卷,自考计算机组装考试习题.doc
- 关于计算机应用基础论文,关于计算机应用基础论文范文.docx
- 奋斗吧,程序员——第四十一章 今日种种,似水无痕;明夕何夕,君已陌路
- 非计算机专业想进阿里,大学毕业后想进阿里巴巴?那一定要选这几所大学,录取几率非常大!...
- 推进中学理化生实验操作考场建设,培养学生的核心素养
- 12.15黄金白银TD短线布局建议,期货原油最新走势分析