2

Delphi 2010を使用して、電子メールの本文が複数行である必要がある電子メールを送信しようとしています。複数行の部分が機能しません。#13、#10、および'%0d'を挿入してみました。すべてを無視して1行として出力するか、外部例外を取得します。

これが私のソースコードです。

  strEmail := 'address@domain.com';
  strSubject := 'Update Request: ';
  strBody := 'Line1 ' +#13 + 'Line 2';


  Param := 'mailto:' + strEmail + '?subject=' + strSubject + '&Body=' + strBody;
  Shellexecute(Main.Handle, 'open', PChar(Param), nil, nil, SW_SHOWNORMAL);

メールの本文の別々の行でLine1とLine2を取得するにはどうすればよいですか?電子メールクライアントはOutlookだけであると想定できます。(異なるバージョンが使用される場合があります。)

ありがとう、

GS

4

3 に答える 3

3

mailto URL スキームによると、改行RFC 2368には を使用する必要があります。%0D%0Aそれに関する直接のメモがあります(二重引用符を削除):

また、メッセージ本文の改行は %0D%0A でエンコードする必要があることに注意してください。

于 2013-02-04T15:02:10.527 に答える
1

TLama が指摘したように、RFC では、電子メールの改行にキャリッジ リターンとライン フィードの両方が必要です。

3 行目を次のように変更します。

strBody := 'Line1 ' + #13#10 + 'Line 2';

埋め込まれたキャリッジ リターンとライン フィードを些細なこと以上に使用するプログラムに取り組んでいるときはいつでも、定数を宣言します。

const
  CRFL = #13#10;

コード全体で #13#10 の代わりに定数を使用する必要があることを知っていると、一部を忘れたり、逆に入力したりする可能性が減ります。

于 2013-02-04T22:35:05.530 に答える