Làm cách nào để gửi email với tệp đính kèm theo postfix từ dòng lệnh?


10

Tôi vừa mới thiết lập máy chủ Ubuntu 10.04 LTS mới trên linode. Thực hiện theo một hướng dẫn tuyệt vời tại: ở đây để hoàn tất việc cài đặt một số nội dung cơ bản bao gồm cả hậu tố.

Tôi đang cố gắng tìm ra cách gửi email đến địa chỉ gmail của mình bằng tệp đính kèm, nhưng không thể tìm thấy. Đã xác nhận rằng email có thể đến tài khoản gmail của tôi.

Cuối cùng, tôi phải sử dụng mutt để gửi email với tệp đính kèm, có lẽ SendEmails cũng sẽ hoạt động tốt, nhưng tôi tự hỏi làm thế nào để làm điều tương tự trong postfix từ dòng lệnh?

Rất cám ơn trước cho câu hỏi ngớ ngẩn này.

Câu trả lời:


14

Tại sao nó phải được postfixtrực tiếp? mailx -a, mutthoặc mutt -acũng sẽ sử dụng sendmailgiao diện - trừ khi bạn định cấu hình chúng cho SMTP.

echo "Đây là một tin nhắn thử nghiệm" | mutt -s Test -a foo.zip - $ USER
echo "Đây là một tin nhắn thử nghiệm" | thư -s Kiểm tra -a foo.zip $ USER

(Lưu ý, trong bsd-mailx, tùy chọn -Athay thế.)


Dù sao, đây là một ví dụ "hậu tố".

Thay thế $USER, loại nội dung và tên tệp để phù hợp với môi trường của bạn. Ví dụ giả sử bạn đang gửi tin nhắn cho chính mình và có tệp ZIP foo.ziptrong thư mục hiện tại.

(printf "%s\n" \
    "Subject: test" \
    "To: $USER" \
    "Content-Type: application/zip" \
    "Content-Disposition: attachment; filename=foo.zip" \
    "Content-Transfer-Encoding: base64" \
    "";
 base64 foo.zip) | sendmail "$USER"

(Tạo các tin nhắn nhiều phần MIME còn lại như một bài tập cho người đọc.)


mail -a foo.zipkhông đính kèm foo.zipvới một tin nhắn như với mutt.
nr

@ nicolai.rostov: mailtôi đoán vậy. Nó làm như vậy trong gia truyền-mailx.
dùng1686

7

Postfix là một đại lý chuyển thư (MTA) . Công việc của nó là xử lý việc gửi thư: nhận nó và gửi nó đến điểm tiếp theo trên tuyến đường của nó. Postfix là một nhân viên bưu điện, có công việc là lấy một phong bì và (với sự giúp đỡ từ các đồng nghiệp của nó) mang nó đến người nhận.

Những gì bạn đang yêu cầu ở đây là công việc thư ký: tập hợp các tài liệu để đưa chúng vào phong bì. Đó không phải là công việc của Postfix: đó là công việc cho một tác nhân người dùng thư (MUA) . Bạn có thể viết một MUA thô sơ chỉ lắp ráp các mảnh để tạo một thư trong một vài dòng vỏ, như sự khéo léo đã làm , nhưng Mutt thực sự là một công cụ tốt cho nhiệm vụ này.


4

Từ dòng lệnh, tôi thích sử dụng "sendemail", trên ubfox / debian có thể được cài đặt từ dòng lệnh như vậy:

apt-get install sendemail

Sau đó, bạn có thể chỉ cần bảo nó sử dụng localhost (Postfix) làm MTA.

Trên thực tế tôi chỉ nhận thấy rằng localhost: 25 là mặc định:

-s SERVER[:PORT]          smtp mail relay, default is localhost:25

Sau đó, bạn thêm tệp đính kèm bằng cờ -a:

sendemail -f sender@example.com -t recipient@example.com -m "This is the message" -u "This is the subject" -a file1.zip file2.zip

1

mailx 12.4 có một tùy chọn để đính kèm tệp:

-a tập tin
    Đính kèm tập tin đã cho vào tin nhắn.

Ví dụ:

[gawad @ centos Desktop] $ mail -s "pine" -a pine.rpm.gz root @ localhost Enter
đây là phần mềm thông mà bạn yêu cầu Enter
.Enter
EOT
[gawad @ centos Máy tính để bàn] $ 
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.