質問

そうです、要するに、私たちは基本的に、メール用のHTMLコンテンツが生成されるシステムをすでに持っています。完全ではありませんが、機能します。

これから、電子メールのプレーンテキストの代替を導出できる必要があります。すぐにジャンプしてRegExを作成し、メッセージから<*>タグを削除することを考えていましたが、フォーマット情報(段落、改行、画像が必要なため、これは良くないことに気付きました。など)。

注:実際にメールを送信し、別のビューなどを設定しても問題ありません。これは HTMLからプレーンテキストを取得することのみです。

だから、私はいくつかのアイデアを考えています。回答として1つを投稿して、皆さんがどう思うかを確認しますが、私はそれをフロアに公開すると思いました。 :)

さらに説明が必要な場合は、叫んでください。

どうもありがとう、

ロブ

役に立ちましたか?

解決

マイソリューション

OK、だからここにある!私は自分の問題の解決策を考えましたが、それは魅力のように機能します!

今、私が設定したかった目標の一部を次に示します。

  • メールのすべてのコンテンツは、(現在のHTMLコンテンツと同様に)ASPXページに残っている必要があります。
  • クライアントコードに<!> quot; SendMail("PageX.aspx") <!> quot;と言う以外のことをさせたくありませんでした。
  • あまり多くのコードを書きたくありませんでした。
  • 可能な限り意味的に正しいコードを維持したかった(本当に狂ったようなハックはありません!)

プロセス

だから、これが私がやったことです:

  • 電子メールメッセージのマスターページに移動します。 ASP.NET MultiView Control を作成します。このコントロールには、HTMLとPlainTextの2つのビューがあります。
  • 各ビュー内に、実際のコンテンツのコンテンツプレースホルダーを追加しました。
  • 次に、既存のASPXコード(ヘッダーやフッターなど)をすべて取得し、HTMLビューに貼り付けました。そのすべて、DocTypeおよびすべて。これにより、VSが少し揺れ動きます。 無視します。
  • もちろん、PlainText環境でHTMLビューを最適に複製するために、PlainTextビューに新しいコンテンツを追加しました。
  • マスターPage_Loadにコードを追加し、QueryStringパラメーター<!> quot; type <!> quot;を確認しました。 <!> quot; html <!> quot;または<!> quot; text <!> quot;。 <!> quot; text <!> quot;に落ちます。存在しない場合。値に応じて、ビューを切り替えます。
  • 次に、コンテンツページに移動して、PlainTextに相当する新しいプレースホルダーを追加し、必要に応じてテキストを追加します。
  • 生活を楽にするため、SendMailメソッドをオーバーロードして必要なページの応答を取得し、<!> quot; type=html <!> quot;を渡します。および<!> quot; type=text <!> quot;必要に応じて AlternateView を作成します。

要約

つまり、要するに:

  • ビューは実際の<!> quot; views <!> quot;を分離します。コンテンツ(HTMLおよびテキスト)
  • マスターページは、QueryStringに基づいてビューを自動的に切り替えます。
  • コンテンツページは、ビューの外観に責任を持ちます。

ジョブ完了!

このいずれかが不明な場合は、叫んでください。これについてのブログ投稿をいつか詳しく作成したいと思います。

他のヒント

私のアイデア

HTMLコンテンツに基づいてページを作成し、コントロールツリーを走査します。その後、コントロールからテキストを選択し、必要に応じてさまざまなコントロールを処理できます(たとえば、イメージにはALTテキストを使用し、


には<!> quot; _____ <!> quot;を使用します)。

HTMLメールがXHTML形式であることを確認して、標準のXMLツールを使用して簡単に解析し、プレーンテキストを出力する独自のDOMシリアライザーを作成できます。一般的なXHTMLをカバーするのはまだ多くの作業ですが、電子メールで使用する予定の限られたサブセットでは機能します。

別の方法として、別のプログラムへのシェルアウトを気にしない場合は、lynx Webブラウザーの-dumpスイッチを使用するだけです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top