如何在 Delphi 中将 TMemo 用于电子邮件正文
How to use TMemo for email message body in Delphi
我有一个 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';
TMemo.Text
属性 returns 整个内容作为单个 string
没有在每行之间插入任何 "soft" (自动换行)换行符, 只有 "hard" 换行符(显式 CR
/LF
个字符)。
改用这个:
IdMessage1.Body.Text := EmailBodyMemo.Lines.Text;
Lines.Text
returns 每行由 Lines.LineBreak
分隔的 string
(Windows 默认为 CRLF
)。
或者更好,改用这个:
IdMessage1.Body := EmailBodyMemo.Lines;
这与这样做相同:
IdMessage1.Body.Assign(EmailBodyMemo.Lines);
我有一个 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';
TMemo.Text
属性 returns 整个内容作为单个 string
没有在每行之间插入任何 "soft" (自动换行)换行符, 只有 "hard" 换行符(显式 CR
/LF
个字符)。
改用这个:
IdMessage1.Body.Text := EmailBodyMemo.Lines.Text;
Lines.Text
returns 每行由 Lines.LineBreak
分隔的 string
(Windows 默认为 CRLF
)。
或者更好,改用这个:
IdMessage1.Body := EmailBodyMemo.Lines;
这与这样做相同:
IdMessage1.Body.Assign(EmailBodyMemo.Lines);