2

Zencart を使用して、商品券を含むメールを顧客に送信しています。証明書は、imagepng を使用して php ファイルによって生成されます。これを使用して Web ページに表示するのに問題はありません。

echo "<img src=\"getImage.php\"/>". 

ただし、電子メール スクリプトで同じことを実行しようとすると、表示されません (ただし、標準の画像は表示されます)。これは動的に生成されていることに関係していると思いますが、回避できないようです。これを行うことでtempnamによって生成された名前をimagepngに付けて、画像を一時的に保存しようとしましたが、

$fname = tempnam("", "img");
imagepng($im, $fname . ".png");

しかし、何らかの理由で画像が保存されません。ob_get_contents を使用したいのですが、画像タグ内で使用できる値を取得する方法がわかりません。

これは、ここ数日、私を夢中にさせています。どんな助けでも大歓迎です。

グレース

4

2 に答える 2

0

秘訣は、電子メールメッセージにも画像を含めることです。画像が送信時に動的に作成される場合は、送信時にPHPスクリプトを実行し、その結果をメッセージに含める必要があります。クライアントがメッセージを表示したときに画像を生成する場合は、@ Laleftが言うように、<img>タグ内のリンクに完全なURLを含める必要があります。

添付された画像を参照する場合は、Content-Id:を割り当てcid:、次のようなリンクで参照します。

From: you <spammer@example.com>
To: recipient <victim@example.net>
Subject: Buy V!agra Ciali$
Content-type: multipart/related; boundary="moo"

--moo
Content-type: text/html; charset="utf-8"
Content-transfer-encoding: quoted-printable

<html><body><img="cid:moo.png"></body></html>

--moo
Content-type: image/png
Content-disposition: inline
Content-id: "moo.png"
Content-transfer-encoding: base64

///base64/encoded/output/of/PHP/script/goes/here//==

--moo--
于 2012-10-22T07:31:29.170 に答える
0

電子メールは Web の外にあるため、画像への絶対パスを設定する必要があります。

<img src="http://yoursite.com/yourimage.php"/>

または、base64 エンコーディングを使用して電子メールに含めますが、より複雑です。

于 2012-10-19T04:16:51.733 に答える