首页
学习
活动
专区
圈层
工具
发布

技术笔记:Indy控件发送邮件

工作中有个需求需要发送邮件,因为使用的delphi6,所以自然就选择了indy组件,想想这事挺简单的。实现的过程倒是简单,看着Indy的demo很快就完了,毕竟也不是很复杂的功能。...因为delphi早期版本一直都是基于ansi字符集,所以对于中文需要支持时就得专门处理。对email的协议也不太熟悉,只知道是编码问题,但找了老半天也没找到相着的解决方法。...比如Delphi默认发送的时候文本是Ansi的,结果Foxmail却是不支持。只有GB2312、UTF-8之类的。...还好delphi里有个函数直接就用: AnsiToUtf8('中文革') 这样发过去的内容中文就可以显示了。...看了看网上的资料,就是使用另一个Indy类可以实现TIdText。

2.1K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    101DIY_inoty9

    前言: Indy在2006年已经开始移植到FPC下,但是由于各种原因一直更新得比较缓慢,现在官网上的最新版本发布时间是2007年底。...随着Delphi2009(Tiburn)的发布,Indy团队已经将for FPC的版本合并到for Win32的版本中,Lazarus就此获得了最新Indy版本的支持。...下面我们就将一步一步来探讨Indy在Lazarus0.9.26中的安装方法。   ...要在Lazarus中安装最新的Indy,首先我们必须获取其最新的代码,由于现在Indy的代码使用SVN作为版本控制软件,所以我们必须先安装SVN客户端的软件。...我们选择“SVN Update”,系统就会开始连接Indy的代码库并下载代码。其间还会提示需要输入用户名和密码,这两项都填indy 就可以了。

    94140

    技术笔记:Indy的TIdSMTP改造,解决发送Html和主题截断问题

    使用Indy来发邮件坑不少啊,只不过有比没有好吧,使用delphi6这种老工具没办法,只能使用了新一点的Indy版本9,公司限制。。。...1、邮件包含TIdText和TIdAttachment时会出现TIdText无法发送的问题 这个问题是因为Indy代码的bug导致的,也很奇怪这种Bug是因为没有经过测试呢?还是测试没有覆盖到?...问题出在SendBody方法上,这个在之前一篇中提到过《技术笔记:Indy控件发送邮件》 当时是解决“发送Html”的问题才使用到了TIdText这个组件,因为基类TIdMessageClient中的SendBody...网上一找有同样的问题,原因也找到了: 【原因】Indy的IdMessage组件在生成待发送的邮件时,主题中有汉字时会按RFC2045~2047的base64编码规范对主题进行编码,base64要求编码后每行长度不能超过...可见Indy确实主要照顾了英文的使用,像中文这种复杂的点语言估计都没好好测试吧,另外以前只听说Indy问题多但一直没感觉到,现在接触多一些果然有所体会啊。

    1.1K60

    Delphi 教程

    如果按规范写,应当是Application.CanRun:=True; 但是delphi是简写成了run....这个方法可以让程序进入一个单独的线程,从而使占用的cpu减少,并且可以跟据需要建立其他的线程.对于一些像浏览器之类的程序,需要同时打开多个页面,或是其他的事情同时进行,这时就需要用ProcessMessages,不然程序将变得非常消息慢(...一般的编程语言,它的控件只有三个关键,属性,方法和事件,但是delphi还有一个动作 ,这就意味着它能更方便的处理复杂的事情。...TCP用于点对点的传输,可以传文件,但是速度慢;UDP用于点对面的传输,不能传文件,但是速度快 。一般的网络通信程序中,将这2种协议放在一起用。单纯的发送信息用UDP,发送文件用TCP。...对于一个单元,有时候需要initialization和finalization标识符,它们用于在单元载入前进行一定的操作,最常用的是 initialization ActiveX.CoInitialize

    3.2K11

    从内存泄露到全栈资源治理:Deleaker如何成为开发者的终极防线

    全维度资源泄露检测Deleaker突破传统工具的单一内存检测局限,实现六层资源监控体系: 内存层:精确追踪堆内存、虚拟内存、内存映射文件 对象层:监控Delphi/VCL对象、C++类实例、.NET...明确的技术边界操作系统限制:仅支持Windows平台(含WSL 1.0),暂不兼容Linux/macOS原生应用 语言生态覆盖:深度支持C/C++/Delphi/.NET,有限支持Python/Node.js...# 生成泄露报告生产环境监控:通过轻量级Agent模式定期采集资源指纹,超过阈值时触发告警 技术债务可视化:将历史泄露数据映射为代码热力图,优先修复高频泄露模块 三、典型场景解决方案对比场景1:Delphi...更在于帮助团队建立资源生命周期管理体系: 编码规范增强:将高频泄露模式固化为代码审查Checklist 架构优化引导:通过泄露热点分析发现过度复杂的对象所有权设计 知识沉淀工具:内置泄露模式库提供修复建议(如"检测到未配对的CoInitialize...其技术边界的清晰定义,反而彰显了在Windows原生应用、Delphi/VCL生态等领域的绝对专业度。对于追求工程卓越的团队而言,这不仅是工具升级,更是一次开发范式的进化。

    1.1K00

    ADO对SQL Server 2008数据库的基础操作

    最近在学习ADO与数据库的相关知识,现在我将自己学到的东西整理写出来,也算是对学习的一种复习。...这篇文章主要说明如何遍历某台机器上所有的数据库服务,遍历某个服务中所有的数据库,遍历数据库中的所有表以及表中所有字段字段,最后再说明如何通过ADO操作数据库中的表。...,这个时候我们更进一步来遍历数据库服务中所有的数据库,实现这个功能没有什么特殊的函数,主要是对系统表的应用,我们用的是系统表master.sys.database,该表中记录了服务中所有的数据库,通过ADO...的方式来进行操作: //初始化COM组件库 CoInitialize(NULL); _ConnectionPtr pConnect; HRESULT hErr; try { //创建Connection

    1.4K20

    vc++菜鸟教程_vc6.0使用教程详解

    怎样编写自己的VCL控件 用过Delphi的朋友们,大概对Delphi的最喜欢Delphi的不是他的强类型的pascal语法,而是强大的VCL控件,本人就是一位VCL控件的爱好者。...关于如何编写VCL控件,和多Delphi的书籍里都有介绍,在此简单的说明一下。 在Delphi中,TComponent是所有VCL构件的基础。编写非可视构件以便从TComponent派生。...Delphi提供了若干专门用于制作控件(可视构件)的基本构件类型,都是从TControl和TWinControl派生而来。...关于简单控件的编写,一般只需要从Delphi为你准备好的基本构件类型继承下来,然后重写父类的一些方法,添加自己的一些方法,以及属性就可以了.你还可以学Delphi一样写出一些抽象构件类型来, 比如说上面的...别看Delphi中VCL有源码,但不是全部的,就属性编辑器来说,想找到一些很有参考价值的,很难。本人将在接下来的篇章中慢馒和读者探讨。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

    2.7K10
    领券