Làm cách nào để gửi email thông qua mailx
lệnh UNIX ?
Làm cách nào để gửi email thông qua mailx
lệnh UNIX ?
Câu trả lời:
một ví dụ
$ echo "something" | mailx -s "subject" recipient@somewhere.com
gửi tệp đính kèm
$ uuencode file file | mailx -s "subject" recipient@somewhere.com
và để gửi tệp đính kèm VÀ viết nội dung thư
$ (echo "something\n" ; uuencode file file) | mailx -s "subject" recipient@somewhere.com
mail
.
uuencode
là công nghệ kế thừa từ một thiên niên kỷ đã qua, không tạo ra những gì chúng ta có nghĩa là "tệp đính kèm" ngày nay. Về cơ bản, nó đặt một phần lộn xộn mà máy có thể đọc được ở cuối nội dung tin nhắn. Trong thời đại ngày nay, bạn sẽ được phục vụ tốt hơn bằng một bưu phẩm nhận biết MIME đúng cách. Thật không may, không có sự mailx
thay thế được hỗ trợ phổ biến bằng các tính năng MIME, nhưng nếu bạn có mutt
, đó có lẽ là con đường ít kháng cự nhất.
Của bạn đây :
echo "Body" | mailx -r "FROM_EMAIL" -s "SUBJECT" "To_EMAIL"
Tái bút. Nội dung và chủ đề nên được giữ trong dấu ngoặc kép. Xóa trích dẫn từ FROM_EMAIL
và To_EMAIL
trong khi thay thế địa chỉ email.
mailx -s "subjec_of_mail" abc@domail.com < file_name
thông qua mailx
tiện ích, chúng tôi có thể gửi một tệp từ unix
đến mail server
. ở đây trong đoạn mã trên, chúng ta có thể thấy tham số đầu tiên là tham số -s "subject of mail"
thứ hai mail ID
và tham số cuối cùng là tên tệp mà chúng tôi muốn đính kèm
mail [-s subject] [-c ccaddress] [-b bccaddress] toaddress
-c và -b là tùy chọn.
-s: Chỉ định chủ đề; nếu chủ đề chứa khoảng trắng, hãy sử dụng dấu ngoặc kép.
-c: Gửi các bản sao đến danh sách người dùng được phân tách bằng dấu phẩy.
-b: Gửi bản sao mù tới danh sách người dùng được phân tách bằng dấu phẩy.
Hy vọng câu trả lời của tôi làm rõ nghi ngờ của bạn.
Nhanh hơn với lệnh MUTT
echo "Body Of the Email" | mutt -a "File_Attachment.csv" -s "Daily Report for $(date)" -c cc_mail@g.com to_mail@g.com -y
Từ trang người đàn ông:
Đang gửi thư
Để gửi thư cho một hoặc nhiều người, mailx có thể được gọi với các đối số là tên của những người mà thư sẽ được gửi đến. Sau đó, người dùng sẽ phải nhập tin nhắn của mình, theo sau là 'control-D' ở đầu dòng.
Nói cách khác, mailx đọc nội dung cần gửi từ đầu vào chuẩn và có thể được chuyển hướng đến như bình thường. Ví dụ:
ls -l $HOME | mailx -s "The content of my home directory" someone@email.adr
echo "Sending emails ..."
NOW=$(date +"%F %H:%M")
echo $NOW " Running service" >> open_files.log
header=`echo "Service Restarting: " $NOW`
mail -s "$header" abc.xyz@google.com, \
cde.mno@yahoo.com, \ < open_files.log
Tùy chỉnh địa chỉ TỪ
MESSAGE="SOME MESSAGE"
SUBJECT="SOME SUBJECT"
TOADDR="u@u.com"
FROM="DONOTREPLY"
echo $MESSAGE | mail -s "$SUBJECT" $TOADDR -- -f $FROM
mail
và mailx
các lệnh với các tùy chọn khác nhau.
Đây là một chức năng đa chức năng để giải quyết việc gửi thư với một số tệp đính kèm:
enviaremail() {
values=$(echo "$@" | tr -d '\n')
listargs=()
listargs+=($values)
heirloom-mailx $( attachment=""
for (( a = 5; a < ${#listargs[@]}; a++ )); do
attachment=$(echo "-a ${listargs[a]} ")
echo "${attachment}"
done) -v -s "${titulo}" \
-S smtp-use-starttls \
-S ssl-verify=ignore \
-S smtp-auth=login \
-S smtp=smtp://$1 \
-S from="${2}" \
-S smtp-auth-user=$3 \
-S smtp-auth-password=$4 \
-S ssl-verify=ignore \
$5 < ${cuerpo}
}
hàm gọi: enviaremail "smtp.mailserver: port" "from_address" "authuser" "" pass '"" đích "" danh sách các tệp đính kèm được phân tách bằng dấu cách "
Lưu ý: Bỏ dấu ngoặc kép trong cuộc gọi
Ngoài ra, hãy nhớ xác định bên ngoài $ titulo (chủ đề) và $ cuerpo (nội dung) của email trước khi sử dụng hàm
Nếu bạn muốn gửi nhiều hơn hai người hoặc DL:
echo "Message Body" | mailx -s "Message Title" -r sender@someone.com receiver1@someone.com,receiver_dl@.com
đây: