Gửi email bằng PHPMailer - nhúng hình ảnh vào nội dung


97

Tôi đang cố gắng gửi thư HTML, với PHPMailer, với hình ảnh. Nội dung được tải từ một tệp html, chứa tất cả thông tin.

Khi gửi thư, hình ảnh không xuất hiện trong nội dung, mặc dù tôi thậm chí gửi hình ảnh cũng như một tệp đính kèm.

<img>Thẻ HTML trỏ đến cùng một nơi với địa điểm.

PHP:

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

Làm cách nào tôi có thể làm cho html trỏ tới tệp đính kèm để hình ảnh có thể được tải trong nội dung.

Nhìn vào ví dụ đi kèm với PHPMailer, tôi không nhận thấy bất kỳ sự khác biệt nào và trong trường hợp của chúng, hình ảnh xuất hiện.

Câu trả lời:


206

Tôi đã tìm thấy câu trả lời:

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

và trên <img>thẻ đặtsrc='cid:logo_2u'


3
Điều đó hoàn toàn hữu ích !!! Vì tò mò, bạn đã tìm thấy thứ này ở đâu? Vui lòng giải thích.
mtk

Tại sao dấu gạch chéo ngược ở cuối cid?
Plummer

Tôi đã làm điều này rất lâu rồi, tôi không nhớ là có lý do hay không. Tôi không nghĩ là có. Rất có thể chỉ là một số rác.
elvispt

8
Tôi tin rằng dấu gạch chéo ngược đã bị nhầm ở đó từ một mã trước đó thoát khỏi dấu ngoặc kép, giống như echo "src=\"cid:logo_2u\""và tôi không tin rằng dấu gạch chéo ngược là cần thiết.
Cruel

8
Đối với những người cần lời giải thích từ một chuyên gia: bạn cần cho công cụ kết xuất biết nơi lấy hình ảnh và với giao thức nào (để sử dụng hình ảnh được đính kèm, bạn sử dụng giao thức de cid ", Content-ID). Và bạn sử dụng AddEmbeddedImage để đưa ra một id để tập tin đính kèm, do đó bạn có thể tham khảo (Lưu ý rằng nó có thể là âm thanh và các loại tập tin).
PhoneixS

3

Theo Hướng dẫn sử dụng PHPMailer , câu trả lời đầy đủ sẽ là:

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

Trường hợp sử dụng:

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

Nếu bạn muốn hiển thị hình ảnh với URL từ xa:

$mail->addStringAttachment(file_get_contents("url"), "filename");
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.