Đăng giải pháp hiệu quả cho tôi trong trường hợp nó có thể giúp đỡ người khác, xin lỗi vì đã quá muộn.
Cách đáng tin cậy nhất mà tôi tìm thấy để thực hiện điều này là đưa tệp đính kèm dưới dạng base64 vào chính tệp eml, dưới đây là một ví dụ về nội dung eml.
Lưu ý 01: base64 cho tệp xuất phát từ việc chạy lệnh base64 trên linux bằng cách sử dụng tệp đính kèm làm đối số (nên hoạt động với bất kỳ công cụ base64 nào)
Lưu ý 02: chuỗi được sử dụng cho ranh giới chỉ là vô nghĩa khi sử dụng ngày và chữ in hoa ngẫu nhiên
Tên tệp: emlfile.eml
From: Sender <sender@email.co.za>
To: recipient01@email.co.za
CC: recipient02@email.co.za
Disposition-Notification-To: recipient01@email.co.za
Subject: Generic Subject
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="19032019ABCDE"
--19032019ABCDE
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Generic Body Copy
--19032019ABCDE
Content-Type: application;
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="MyPdfAttachment.pdf"
*base64 string goes here (no asterix)*
--19032019ABCDE--
Sau đó, tệp filename.eml có thể được gửi bằng lệnh và nó sẽ bao gồm tệp đính kèm
# /usr/sbin/sendmail -t < filename.eml
uuencode
hoặcmutt
.