6

任何人都知道生成带有嵌入图像和替代文本部分的 HTML 电子邮件的好例子吗?我需要在 HTML 中生成一些表格报告,并希望嵌入徽标和其他图像。

我相信 Indy 可以通过一些工作来做到这一点,但我希望有人能给我指出一个很好的例子作为起点。我愿意使用 Indy 以外的库和商业解决方案,只要源代码可用。质量和实施时间比成本更重要。该解决方案还需要支持对邮件交换器的基于 SMTP 的传送。

我的愿望清单上的另一项是能够利用 FastReports、TRichView 或类似工具来生成 HTML 消息内容。两者都有可用的 HTML 输出过滤器,但我没有机会进行任何测试。对此主题的任何反馈将不胜感激。

提前致谢!

大卫

4

5 回答 5

10

阅读 Indy 网站上的以下文章,它们解释了填充TIdMesaageHTML 的正确方法:

HTML 消息

新的 HTML 消息生成器类

于 2009-10-15T00:50:09.973 回答
1

这些天我使用 Clever Component 的电子邮件客户端,虽然不是免费的。

TurboPower Internet (OpenSource) 控件过去对我非常有用。

于 2009-10-15T10:02:11.890 回答
1
function data64(const filename:string): ansistring;
// uses Classes, IdGlobalProtocols, EncdDecd;
const
  crlf = #13#10;
begin
  result := '';
  with TIdMimeTable.Create do
  try
    result := 'data:'
      + GetFileMIMEType(filename) + ';';
  finally
    Free;
  end;
  with TMemoryStream.Create do
  try
    LoadFromFile(filename);
    result := result + 'base64,' + crlf
      + EncodeBase64(Memory,Size);
  finally
    Free;
  end;
end;
于 2013-01-14T22:24:06.143 回答
0

我们在几年前尝试使用 Indy 和嵌入式 cid:图像如下: https ://forums.codegear.com/thread.jspa?threadID=17473

我们从来没有让它稳定过,每次有另一个邮件阅读器都在抱怨(如果我们让它在 Outlook 中工作,那么 Thunderbird 不接受它,或者 Outlook Express,或者,等等,等等)。

最后,我们使用 .NET 使用AspNetEmail完成了它,它就像一个魅力。

——杰伦

于 2009-10-14T22:30:17.393 回答
0

这完全取决于您必须能够支持多少不同的远程邮件客户端。我相信支持 SMTP/Mime 的知名 Delphi 库会做得很好,但是当您的一个邮件用户发现他们的收件人看不到格式正确的电子邮件时,它们可能会给您带来支持问题。

我建议您访问 Jacob Palme 的网站,它可以让您了解您可能遇到的一些问题。它可能有点过时,但总而言之,无论您如何构建和发送复杂的 MIME 电子邮件,您都会遇到一个或多个无法正确处理语法的邮件客户端。该站点还提供了一些有用的结构示例的链接,您可以检查和测试这些示例。

我并不是要暗示你必须像我们一样采用你自己的逻辑:一个好的打包解决方案在绝大多数情况下可能会成功。几年前,我们编写了自己的 Delphi 代码来处理这个问题,所以我将把它留给其他人,以便为您提供有关现在货架上的最新信息。

于 2009-10-14T22:46:35.917 回答