【问题标题】:How to use TMemo for email message body in Delphi如何在 Delphi 中将 TMemo 用于电子邮件正文
【发布时间】:2020-04-06 19:48:55
【问题描述】:

我有一个 TMemo 对象,其中包含大约 30 行(一些文本,一些空白行)的文本,代表我希望应用程序发送的电子邮件的消息正文。在下面的代码中,我将 TMemo 对象中的文本传递给 IdMessage1.Body.Text (Indy 10),但我生成的电子邮件正文似乎只是一个连续的换行。我想查看包含一些空白行的间距。如果我从 TMemo 的 Lines 参数中复制内容并将其粘贴到文本编辑器中,我可以在行尾看到 CR 和 LF。

CR 和 LF 在此翻译中是否被剥离,我应该为此使用不同的组件而不是 TMemo,还是我将 TMemo 中的行错误地传递给 IdMessage1.Body.Text

IdMessage1.Body.Text := EmailBodyMemo.Text;
IdMessage1.ContentType := 'text/html';

【问题讨论】:

    标签: delphi indy10


    【解决方案1】:

    TMemo.Text 属性将整个内容作为单个 string 返回,没有在每行之间插入任何“软”(自动换行)换行符,只有“硬”换行符(显式 CR/LF字符)。

    改用这个:

    IdMessage1.Body.Text := EmailBodyMemo.Lines.Text;
    

    Lines.Text 返回一个string,其中每一行由Lines.LineBreak 分隔(Windows 上默认为CRLF)。

    或者更好,改用这个:

    IdMessage1.Body := EmailBodyMemo.Lines;
    

    这和这样做是一样的:

    IdMessage1.Body.Assign(EmailBodyMemo.Lines);
    

    【讨论】:

      猜你喜欢
      • 2017-05-10
      • 2016-01-22
      • 2017-01-16
      • 1970-01-01
      • 1970-01-01
      • 2022-08-24
      • 2020-08-26
      • 1970-01-01
      • 2019-03-12
      相关资源
      最近更新 更多