Cách chính xác để tạo HTML-Email với các tệp đính kèm nội tuyến và các tệp đính kèm không phải là nội tuyến là gì?HTML-Email với các tệp đính kèm nội tuyến và các tệp đính kèm không phải nội dòng
Ngoài ra, vui lòng cho tôi biết Loại nội dung để sử dụng chỉ với các tệp đính kèm nội tuyến và chỉ với các tệp đính kèm không phải nội tuyến.
Cho đến bây giờ tôi đã làm điều đó như thế này:
MIME-Version: 1.0
[some more headers]
Content-type: multipart/mixed;
boundary="myboundary"
--myboundary
Content-Type: text/html; charset=ISO-8859-15
Content-Transfer-Encoding: 7bit
[html with img cid:my_image]
--myboundary
Content-Type: image/png;
name="my_image.png"
Content-Transfer-Encoding: base64
Content-ID: <my_image>
Content-Disposition: inline;
filename="my_image.png"
[base64 image data]
--myboundary
Content-type:application/pdf;
name="my_pdf.pdf"
Content-length:1150
Content-Transfer-Encoding: base64
Content-ID: <my_pdf.pdf>
Content-Disposition: attachment;
filename="my_pdf.pdf"
[base64 pdf data]
--myboundary--
Các email có vẻ tốt trong quan điểm. Nhưng tôi nhận thấy rằng Thunderbird không hiển thị hình ảnh nội tuyến của tôi và hiển thị 2 tệp đính kèm thay thế (Hình ảnh của tôi và tệp PDF của tôi). Vì vậy, tôi đã làm một số gỡ lỗi và nhận thấy rằng hình ảnh nội tuyến nên được sended qua Content-Type: multipart/related
.
Vì vậy, tôi đã thay đổi Content-Type: multipart/mixed
thành Content-Type: multipart/related
và Thunderbird hiển thị chính xác: Hình ảnh được hiển thị bằng html và một tệp đính kèm, PDF được hiển thị.
Tôi không phải shure nếu đây là giải pháp chính xác mặc dù nó có vẻ hoạt động. Có đúng không khi sử dụng multipart/related
luôn luôn (trong trường hợp nếu tôi có tệp đính kèm nội tuyến và không phải nội tuyến, trong trường hợp nếu tôi chỉ có tệp đính kèm nội tuyến và trong trường hợp nếu tôi chỉ có các tệp đính kèm không phải nội tuyến)? Hoặc là cách chính xác để sử dụng một ranh giới loại liên quan đến việc chia nhỏ các tệp đính kèm nội tuyến và một ranh giới khác của loại hỗn hợp để tách các tệp đính kèm không phải là nội tuyến không? Không.
Tôi hy vọng bạn có thể cung cấp cho tôi một mẫu để
- Email với inline chỉ file đính kèm
- Email với phi inline chỉ file đính kèm
- Email với nội tuyến và phi inline file đính kèm
tôi đã viết một câu trả lời với một câu hỏi tương tự và tạo ra một ascii nghệ thuật để giải thích các trả lời: http://stackoverflow.com/a/40420648/633961 – guettli