2011-12-22 20 views
0

私は電子メールクライアントを作成していて、多くの問題を抱えています。今私が直面している最新の問題は、HTML電子メール本文に埋め込み画像を表示することです。埋め込み画像をHTMLメールで通常の画像として表示する(PHP)

私の電子メールの本文のコードは次のようになります。

<img alt="image001" src="cid:[email protected]" id="Picture_x0020_1" /> 

関連するいくつかの記事が見つかったが、彼らは有用ではないされています。メールの内容を表示しているときに同様の問題が発生する可能性があります。

私がメールを取得するためにPOP3とIMAPのPHPを使用しています。現在メールサーバとしてgmailを使用しています。 SMTP(PhpMailer)を使用してメールを送信する。

ありがとうございます。

答えて

0

あなたが使用しました:

$mail->AddEmbeddedImage(filename, cid, name); 
//By using this function with this example's value above, results in this code: 
$mail->AddEmbeddedImage('my-photo.jpg', 'my-photo', 'my-photo.jpg '); 

そうならば、何が間違って起こっていますか?なぜあなたは幸せではないのですか?

デフォルトでは、ほとんどのメールクライアントはには埋め込み画像が表示されませんが、これはGmailとOutlookに対応しています。あなたはそれを回避することはできません。そのセキュリティ/帯域幅節約機能。ユーザーはまず、画像が表示される前に「画像を表示」を押す必要があります。 HTMLで

+0

です。私は自分の受信トレイからメールを表示しています。私の受信箱には、いくつかの形式のメールがあります。 1つの形式は、私が言及した埋め込み画像です。私は自分のオンラインメールクライアントに画像を表示したい。 gmailや他のメールクライアントに表示されているのと同じようにメールの本文を表示するだけです。 – IvenMS

+0

あなたはimage001.gif –

+0

という名前の画像添付ファイルにアクセスできますか?添付ファイルから画像を取得できます。 – IvenMS

1

、画像が(SRC = "" 属性で使用される)特定のURIを持つスタンドアローン文書です。 あなたのMIMEボビーでは、このsrc属性は相対的なMIME部分を参照しています。

readmail.php: だから、あなたは(つまり、/ tmpは/ [md5_MIME_PART_ID]) そして、電子メールの本文を書き換え、特定のMIME要求を転送するためにCGIスクリプトを使用個別のファイルにすべてのMIMEパートの内容を記述する必要がありますもちろん

<? 
if($_GET['mime']) { 
    readfile("/tmp/{$_GET['mime']}"); 
    die; 
}  
$contents = preg_replace("/sid:/", "readmail.php?mime=$1", $contents); 
echo $contents; 

、適切なデータベースシステムは、ここでは、より効率的になりますが、それは私がメールを送信していないです開始

+0

返事をありがとう。あなたが説明した答えについて私は明確ではない。メール本体では、画像データはメールの一部に与えられ、各部分はCIDで識別されます。このCIDをimg srcに使用してデータを表示するHTML本体。メールクライアントはこれを読み取り、これを表示できます。しかし、POP3ベースのimapメールクライアントは、このイメージデータをHTMLコンテンツのイメージとしてどのように表示できますか?あなたのアイディアを教えてください。 – IvenMS

関連する問題