web-dev-qa-db-ja.com

PHPMailerでメールを送信する-画像を本文に埋め込む

PHPMailerを使用して、画像付きのHTMLメールを送信しようとしています。本文はすべての情報を含むhtmlファイルからロードされます。

メールを送信すると、画像は本文に表示されませんが、添付ファイルとしても画像を送信します。

HTML <img>タグは、場所と同じ場所を指します。

PHP:

$mail->AddAttachment('img/2u_cs_mini.jpg');

画像を本文にロードできるように、htmlで添付ファイルを指すようにするにはどうすればよいですか。

PHPMailerに付属の例を見ると、違いはわかりませんが、その場合は画像が表示されます。

89
elvispt

私は答えを見つけました:

$mail->AddEmbeddedImage('img/2u_cs_mini.jpg', 'logo_2u');

<img> tag put src='cid:logo_2u'

191
elvispt

PHPMailer Manual によると、完全な答えは次のようになります。

$mail->AddEmbeddedImage(filename, cid, name);
//Example
$mail->AddEmbeddedImage('my-photo.jpg', 'my-photo', 'my-photo.jpg '); 

使用事例 :

$mail->AddEmbeddedImage("rocks.png", "my-attach", "rocks.png");
$mail->Body = 'Embedded Image: <img alt="PHPMailer" src="cid:my-attach"> Here is an image!';

リモートURLで画像を表示したい場合:

$mail->addStringAttachment(file_get_contents("url"), "filename");
0