電子メールを送信する際に、ドットスタッフィングに関する競合する情報が見つかりました。SMTPドットスタッフィング..いつどこでやるの?
- もののラインがすべての行スタットへのドットはドット
- ものにドットで始まる
- ものを(早期終結を避けるために)単一のドットが含まれている場合は、ドット(1)と、すべての行へ引用符で囲まれたメッセージ部分の一部のみ
誰でも明示できますか?
電子メールを送信する際に、ドットスタッフィングに関する競合する情報が見つかりました。SMTPドットスタッフィング..いつどこでやるの?
誰でも明示できますか?
SMTP規格RFC 5321、セクション4.5.2によれば、すべてのユーザから構成されるテキストが透過伝送できるようにするために
http://tools.ietf.org/html/rfc5321#section-4.5.2
、以下の手順が使用される:
を
- メールテキストの行を送信する前に、SMTPクライアントはその行の最初の文字を確認します。期間である場合は、行の先頭に1つの追加期間が挿入されます。
- SMTPサーバーがメールテキストの行を受信すると、その行をチェックします。行が単一のピリオドで構成されている場合、行はメールインジケータの終わりとして扱われます。最初の文字がピリオドで、その行に他の文字がある場合は、最初の文字が削除されます。
あなたの質問の3点から、2番目の質問は正しいです。
は、SMTPプロトコルでメールが単一のドットと改行文字(複数可)簡単に言えば
で終了しているもののように:Rの\ nを\
。\ rを\ nは
文字:
CR LF DOT CR LF
これは、行頭の1つのドットに対応します。
メールデータに1つのメールが含まれている場合。行頭に改行文字が続くと、SMTPプロトコルはそれをメール終了とみなし、メールの一部のみが配信されます。
したがって、考え方全体は余分なドットを埋めてこのような状況を回避することです。
これは私の質問には答えません。 – transilvlad
実用的な答え:引用符で囲まれた印刷可能な形式を使用している場合は、常にドットを2Eに変換します。ドット除去を正しく行っているすべてのsmtpサーバーに頼ることはできません。
世界全体が標準に準拠していると仮定したい場合は、上記の回答2に進みます。
より多くの時間が過ぎると、私はあなたに答えを覚えています。ありがとう。 – transilvlad
サーバが行の2つのドットのうち1つだけを削除した場合、サーバは標準で指定されているドットを正確に実行しています。元のメッセージの行の最初の文字がピリオドの場合、クライアントはメッセージを送信する前に別の文字を追加します。その後、サーバーは追加された期間を削除します。 – chus
私はそれが2つのうちの1つだけを取り除くことを意味しました。例:\ r \ n .. \ r \ nただし、他の行は使用できません。 – transilvlad
今私はその点を見ることができると思います。解決方法は、実装しているエージェント(MTA、MDA)によって異なります。 RFCに準拠していないサーバーを特定し、メッセージを処理して元のテキストを保持することができます。 – chus