我有一个 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';
Run Code Online (Sandbox Code Playgroud)
该TMemo.Text属性将整个内容作为单个返回,string没有在每行之间插入任何“软”(自动换行)换行符,只有“硬”换行符(显式CR/LF字符)。
改用这个:
IdMessage1.Body.Text := EmailBodyMemo.Lines.Text;
Run Code Online (Sandbox Code Playgroud)
Lines.Text返回string每行由Lines.LineBreak(CRLF默认情况下在 Windows 上)分隔的。
或者更好的是,改用这个:
IdMessage1.Body := EmailBodyMemo.Lines;
Run Code Online (Sandbox Code Playgroud)
这与执行此操作相同:
IdMessage1.Body.Assign(EmailBodyMemo.Lines);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
243 次 |
| 最近记录: |