画像が埋め込まれた HTML メールを送信するのは難しい場合があります。多くのソリューションは外部リソースに依存しているため、スパム フィルターや電子メール クライアントの制限により画像の読み込みに失敗する可能性があります。
これらの問題を解決するには、PHPMailer などの信頼できるライブラリの使用を検討してください。 PHPMailer を使用して画像を埋め込む方法を見てみましょう:
PHPMailer のドキュメントには、埋め込み (インライン) 画像の表示に関する優れたガイダンスが記載されています。 AddEmbeddedImage 関数を使用することをお勧めします。
<code class="php">$mail->AddEmbeddedImage(filename, cid, name);</code>
ここで、
例:
<code class="php">$mail->AddEmbeddedImage('my-photo.jpg', 'my-photo', 'my-photo.jpg ');</code>
埋め込み画像を HTML メールに組み込むには、 src 属性が cid 値に設定された img タグを挿入します:
<code class="html"><img src="cid:my-photo" alt="my-photo" /></code>
完全なコード例は次のとおりです:
<code class="php">require_once('../class.phpmailer.php'); $mail = new PHPMailer(true); $mail->IsSMTP(); try { $mail->Host = "mail.yourdomain.com"; $mail->Port = 25; $mail->SetFrom('from@example.com', 'From Name'); $mail->AddAddress('to@example.com', 'To Name'); $mail->Subject = 'PHPMailer Test'; $mail->AddEmbeddedImage("rocks.png", "my-attach", "rocks.png"); $mail->Body = 'Your <b>HTML</b> with an embedded Image: <img src="cid:my-attach"> Here is an image!'; $mail->Send(); } catch (phpmailerException $e) { echo $e->errorMessage(); } catch (Exception $e) { echo $e->getMessage(); }</code>
このコードは、画像が埋め込まれた HTML 電子メールを構築し、送信しますSMTPを使用します。この例を調整して、他の方法で電子メールを送信したり、CreateBody などの PHPMailer が提供するさまざまなメソッドを使用してメッセージのコンテンツを取得して手動で送信したりすることができます。
以上がPHPMailer を使用して HTML メールに画像を埋め込む方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。