tôi đã phải vật lộn với vấn đề tương tự (với thư) trong một trong những móc post_receive git của tôi và cuối cùng tôi phát hiện ra, sendmail đó thực sự hoạt động tốt hơn cho rằng loại mọi thứ, đặc biệt là nếu bạn biết một chút về cách e-mail được xây dựng (và có vẻ như bạn biết). Tôi biết câu trả lời này đến rất muộn, nhưng có lẽ nó cũng sẽ có ích cho người khác. Tôi đã sử dụng toán tử heredoc và sử dụng tính năng, nó mở rộng các biến, vì vậy nó cũng có thể chạy các tập lệnh nội tuyến. Chỉ cần kiểm tra này ra (bash script):
#!/bin/bash
recipients=(
'[email protected]'
'[email protected]'
# '[email protected]'
);
sender='[email protected]';
subject='Oh, who really cares, seriously...';
sendmail -t <<-MAIL
From: ${sender}
`for r in "${recipients[@]}"; do echo "To: ${r}"; done;`
Subject: ${subject}
Content-Type: text/html; charset=UTF-8
<html><head><meta charset="UTF-8"/></head>
<body><p>Ladies and gents, here comes the report!</p>
<pre>`mysql -u ***** -p***** -H -e "SELECT * FROM users LIMIT 20"`</pre>
</body></html>
MAIL
Note backticks ở phần MAIL để tạo ra một số lượng và ghi nhớ, rằng <<-
dải điều hành duy nhất các tab (không gian) từ đầu dòng, vì vậy trong trường hợp đó sao chép-dán sẽ không hoạt động (bạn cần phải thay thế thụt lề bằng các tab thích hợp). Hoặc sử dụng toán tử <<
và hoàn toàn không thụt lề. Hy vọng điều này sẽ giúp một ai đó. Tất nhiên bạn có thể sử dụng backticks bên ngoài phần MAIL và lưu đầu ra vào một số biến, sau đó bạn có thể sử dụng trong phần MAIL - vấn đề về hương vị và khả năng đọc. Và tôi biết, #!/bin/bash
không phải lúc nào cũng hoạt động trên mọi hệ thống.
Độc giả của câu trả lời cho câu hỏi này hãy cẩn thận: có những chương trình khác nhau được gọi là 'mail', ví dụ' gia truyền-mailx' và 'bsd-mailx' trên jessie Debian . Nếu một lệnh 'mail' từ một câu trả lời ở đây không có tác dụng với bạn, có thể bạn đang sử dụng sai' mail'. Tham khảo trình quản lý gói của phân phối để cài đặt gói đúng và sử dụng tên cụ thể của nhị phân đó (ví dụ: 'bsd-mailx' trên Debian) để giải quyết vấn đề đó. Thông tin chi tiết về vấn đề này tại đây: http://heirloom.sourceforge.net/mailx_history.html –