2012-02-21 18 views
7

PHPのメールボックススクリプトを構築しています。htmlページにhtml電子メールを表示しているPHP

どのようにhtmlメールをgmail/hotmailのようにきれいに表示できますか?

私はそれをエコーするとページレイアウト全体に影響します。

私はiframeを使用できますが、確かにそれが最良の解決策ではありません。

+0

iframeは、電子メール内のCSSを動的に書き換えて、そのページに影響を与えることができないようにしたい場合を除き、SIMPLESTソリューションです。 –

+1

gmailとhotmailを構築するチームのサイズと、バグや問題がある頻度について少し考えてみてください「最良の解決策」は、既存のライブラリまたはプラグインを使用することです。 http://www.afterlogic.org/webmail-liteのようなものがあなたを助けるかもしれません。 –

答えて

5

マークBが述べたように、私はIFrameがあなたの最高の賭けになると信じています...しかし、あなたは自分自身をウイルス、トロイの木馬、悪意のあるHTML/JavaScriptコードにさらす危険性があるそのHTMLをサンドボックス/ストリップする良い方法が見つからない限り、コンピュータ上のPandoraのボックスを開きます。

"(?s)<script.*?(/>|</script>)" 
+3

正規表現は '

1

幅と高さを必要に応じて割り当てるDIVコンテナを作成し、デザインに合わせてオーバーフロープロパティを追加してください。これはあなたの電子メールHTMLがあなたのレイアウトに干渉しないようにするはずです。

UPDATE

はDIVコンテナはまだあなたが表示ボックスのサイズを制限し、適切なCSSは、すべての荷物なしiframeに似た働きをすることができますことを保証します。

電子メールのコードが気になる場合は、strip_tagsが正規表現よりも優れた解決策に見えます。タグのリストを定義して、単独で残しておき、残りのタグを取り除くことができます。

1

は、いくつかのHTML Tidyのライブラリ(すなわち:PHP.Tidy)の使用を考えてみます。ここでは

は、少なくともJavaScriptをきれいにする簡単な正規表現です。

ライブラリを介してテキストを渡すと、適切な形式のHTMLを取得できます。

使用しているdivのほとんどのタグでCSS標準の動作を定義することをお勧めします。

3

「ベストソリューション」を探しているなら、あなたと同じことをしている別のオープンソースの電子メールライブラリを入手してください。スクリプトインジェクションやその他のハッキングに対して安全なメールレンダラーをあなた自身で管理することは、一人の人にとってはあまりにも多くの作業になります。

一例:https://github.com/afterlogic/webmail-lite

もう一つは:http://trac.roundcube.net/あなたは、コードベースを維持するライブラリを使用する他の開発者の利益を得る

何かが壊れている場合ので、あなたがしなければならないすべては、最新のプルです更新(うまくいけば)あなたは修正を得る。あなたが改善が必要なものを見つけたら、それを修正したりビルドしたり、誰にとってもコードを良くすることができます。私は実際にここでオープンソースの図書館に挑戦していますが、商業的な意味では、大きなチームを持たない独自の電子メール・レンダラーを構築するのは悪い考えです。

関連する問題