[杂谈] 基于 TIdSMTP 的邮件发送代码

【更新日志】

2016.2.25

  • 已知 Indy 在 android 6.0 上无法正确的初始化OpenSSL库,造成无法使用 SendBySSL 函数,通过加密通道发送邮件,但 Send 是OK的。解决办法:
    (1)、用 Send 发送邮件,不使用SSL;
    (2)、用 Android 5 的 libssl.so 放到程序的启动目录下;
    (3)、等待 Idera 的官方更新,参考官方论坛
  • 修正了在 Android 发送邮件时,中文标题出现乱码的问题

【正文】

这个是自己写的 SMTP  发送邮件的代码,渣浪昨天不行是渣浪的小霸王服务器出问题了,今天好了。现在渣浪和QQ 邮箱测试通过。我自己只在 Delphi 10 上测试通过,其它的环境就请大家自己测试了。本人不承诺程序没有 Bug,有问题,请及时告诉我,大家一起改进。

感谢 BccSafe 的原创,青春等群友的共同测试。

发送邮件的示例代码:

如果要添加附件,就使用 Attachments 成员的 AddFile 或 AddStream 就行了。

如果想在HTML邮件中插入图片,有两种方式:

  1. 添加附件,然后在附件中<img src=”cid:附件的ContentId”>,缺点是会显示为附件。
  2. 直接用 EncodeMailImage 插入基于Base64 编码的图片资源,这种不会显示为附件,示例如下:

    因为使用了全局的邮件SMTP服务器设置,所以请先设置好DefaultSMTPServer、DefaultSMTPUserName 、
    DefaultSMTPPassword 三个值。

【注意】

在 Windows 下如果使用 SSL,需要32位或64位的 libeay32.dll、ssleay32.dll 两个动态链接库及相应的 VC 运行时库支持。

分享到:

0 条评论

沙发空缺中,还不快抢~