File đính kèm


12

Tôi đã tự hỏi nếu nó có thể bao gồm một tập tin đính kèm với sendmail. Tôi đang tạo các tệp emailfile.eml sau với bố cục sau

From: Company Name <example@nowhere.com>
To: recipient@madeup.com
CC: someoneelse@place.com
Subject: Generated Output

Mime-Version: 1.0

This will be the body copy even though it's terrible

Tôi đang gửi những email này bằng cách sử dụng

# /usr/sbin/sendmail -t < emailfile.eml

Phần này là tệp hoạt động nhưng tôi muốn đính kèm tệp email này và tôi chưa tìm ra cách thực hiện


Sử dụng uuencodehoặc mutt.
serenesat

Tôi đã hy vọng sử dụng một cái gì đó giống như Xử lý nội dung: tệp đính kèm nhưng tôi không thể làm cho nó hoạt động
TheLovelySausage

Bạn có muốn một số văn bản VÀ tệp đính kèm HOẶC chỉ đính kèm? [trường hợp "chỉ đính kèm" là tầm thường]
AnFi

Tôi muốn gửi bản sao nội dung và tệp đính kèm, tốt nhất là sử dụng sendmail và tệp eml với Bố trí nội dung
TheLovelySausage

Trong trường hợp như vậy, đơn giản nhất là sử dụng email client, ví dụ: mutt
AnFi 17/08/2015

Câu trả lời:


13

Với muttbạn chỉ có thể sử dụng:

echo "This is the message body" | mutt -a "/path/to/file_to_attach" -s "subject of message" -- recipient@domain.com

Sử dụng maillệnh:

mail -a /opt/emailfile.eml -s "Email File" user@example.com < /dev/null

-a được sử dụng cho các tệp đính kèm.

Bạn có thể sử dụng SendEmail:

sendemail -t to@example.com -m "Here is the file." -a attachmentFile

1
SendEmaillà dành cho Ubuntu, vì vậy không chắc nó có hoạt động với CentOS hay không.
serenesat

1
Vâng, tôi không có sendemailtrên CentOS nơi làm việc của mình, chúng tôi chỉ có sendmail.
Alexej Magura

trên hệ thống Ubuntu của tôi, mailtùy chọn -Akhông có-a
jdex

7

Đă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

2
Câu trả lời tuyệt vời và hoàn toàn chính xác. Ngoài ra, đối với nhiều tệp đính kèm, bạn có thể lặp lại phần từ dòng thứ hai đến dòng cuối cùng cho đến dấu phân cách thứ hai đến cuối cùng (bao gồm) nhiều lần nếu cần trong tệp .eml.
mttpgn

1
Cảm ơn rât nhiều! <3
TheLovelySausage 23/10/19
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.