3

アプリケーションの問題を修正する必要があります。アプリケーションは、アプリケーション サーバーにデプロイされた Oracle フォームです。ボタンを押すプロセスの最後のフォームは、メールを送信することを想定しています。ボタンのコードの最後には、C:\ 内の CMD ファイルを呼び出す PL/SQL コードがあります。PL/SQL コードが CMD ファイルを呼び出すと、文字列変数である 3 つの引数が渡されます。3番目に問題があります。

これは 3 番目の引数のサンプルです。

'**休暇申請**'||chr(10)||

        '**********************'||chr(10)||chr(10)||

        '** Notice: Forward this mail to example@example.com'||chr(10)||

      '           stating whether the request is approved or rejected'||chr(10)||chr(10)||

        'Request Number   : '||:peticiones_vacaciones.codigo||chr(10)||

        'Date of Request  : '||to_char(:peticiones_vacaciones.fecha_peticion,'dd/mm/yyyy')||chr(10)||chr(10)|| 

cmd ファイルは、Outlook オブジェクトを作成し、3 番目の変数を HTML 本文として渡す Vbscript を呼び出します。

このすべての問題は、誰かがこの電子メールを電子メールの本文で受信すると、最初の行である ** VACATION REQUEST ** だけが表示され、本文の他の部分がすべて欠落していることです。

vbscript を使用するウィンドウでは、行末に CHR(10) と CHR(13) の両方を配置する必要があることがわかりました???

本当 ?私の場合、これが問題になる可能性がありますか?

4

2 に答える 2

4

電子メール標準 ( RCF2822 ) では、送信元または送信先のプラットフォームに関係なく、改行と改行 (別名CRLF、またはchr(13)+chr(10)) で行を区切る必要があると規定されています [つまり、. これは Windows の問題ではありません]。

通常、CRLF はヘッダーを区切るときに最も重要ですが、1 行のテキストの長さを 998 文字以下、できれば 78 文字以下 (CRLF 文字なしで 1000.80 文字) にさらに制限します。

CRLF RFC2822 セクション 2.3 では、本文は一緒にのみ含む必要があり、独立して表示されてはならないことがさらに述べられているため、メール インフラストラクチャの一部が最初に切り詰められている可能性が非常に高いですchr(10)。そのような文字を本文だけに含めたい場合は、別の形式のコンテンツエンコーディングを使用する必要があります...base64たとえば(ただし、それはあなたが求めている範囲外です-私はそれを解決 ;))

つまり、上記のコードが VBScript の場合、2 つの文字列&連結||するために使用する必要があります ( ではありません)。それがplsqlスクリプトの場合、そのステートメントの出力が最初の文字列だけでなく大量のテキストであることを確認しましたか?

于 2012-07-23T20:23:05.170 に答える
2

電子メール標準では、行が CR/LF (chr(13)/chr(10)) で終わる必要があると指定されています。https://www.rfc-editor.org/rfc/rfc2822#section-2.1を参照

一般に、Windows テキスト ファイルは同じ形式に従います。

于 2012-07-23T20:20:33.823 に答える