PHPMailer로 이메일 보내기-본문에 이미지 삽입


97

이미지와 함께 PHPMailer를 사용하여 HTML 메일을 보내려고합니다. 본문은 모든 정보를 포함하는 html 파일에서로드됩니다.

메일을 보낼 때 이미지를 첨부 파일로도 보내지 만 본문에 이미지가 나타나지 않습니다.

HTML <img>태그는 장소와 같은 위치를 가리 킵니다.

PHP :

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

이미지가 본문에로드 될 수 있도록 html이 첨부 파일을 가리 키도록하려면 어떻게해야합니까?

PHPMailer와 함께 제공되는 예제를 살펴보면 차이가 전혀 없으며 그 경우 이미지가 나타납니다.

답변:


206

답을 찾았습니다.

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

그리고 <img>태그에 넣어src='cid:logo_2u'


3
그것은 완벽하게 도움이됩니다 !!! 호기심으로 이걸 어디서 찾았나요? 설명 해주십시오.
mtk

cid 끝에 백 슬래시가있는 이유는 무엇입니까?
Plummer 2013 년

아주 오래 전에했는데 이유가 있었는지 기억이 안 나네요. 나는 없다고 생각합니다. 아마도 쓰레기가 될 것입니다.
elvispt 2013 년

8
백 슬래시가 따옴표를 이스케이프 한 이전 코드에서 실수로 남겨 echo "src=\"cid:logo_2u\""졌다고 생각하며 백 슬래시가 필요하다고 생각하지 않습니다.
Cruel

9
비전문가의 설명이 필요한 사람 : 이미지를 가져올 위치와 프로토콜을 렌더링 엔진에 알려야합니다 (첨부 된 이미지를 사용하려면 "프로토콜, Content-ID"를 사용합니다). 당신이 그것을 참조 할 수 있도록 AddEmbeddedImage 첨부 파일에 ID를 제공하는 (주는 소리와 다른 유형의 파일이 될 수 있음).
PhoneixS

3

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");
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.