簡體   English   中英

如何通過 UNIX mailx 命令發送電子郵件?

[英]How can I send an email through the UNIX mailx command?

如何通過 UNIX mailx命令發送電子郵件?

一個例子

$ echo "something" | mailx -s "subject" recipient@somewhere.com

發送附件

$ uuencode file file | mailx -s "subject" recipient@somewhere.com

並發送附件並編寫消息正文

$ (echo "something\n" ; uuencode file file) | mailx -s "subject" recipient@somewhere.com

這個給你 :

echo "Body" | mailx -r "FROM_EMAIL" -s "SUBJECT" "To_EMAIL"

附注。 正文和主題應保持在雙引號內。 FROM_EMAILTo_EMAIL刪除引號,同時替換電子郵件地址。

mailx -s "subjec_of_mail" abc@domail.com < file_name

通過mailx實用程序,我們可以將文件從unix發送到mail server 在上面的代碼中,我們可以看到第一個參數是-s "subject of mail" ,第二個參數是mail ID ,最后一個參數是我們要附加的文件名

使用 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
  1. -c 電子郵件抄送列表
  2. -s 主題列表
  3. -y 發送郵件
mail [-s subject] [-c ccaddress] [-b bccaddress] toaddress

-c 和 -b 是可選的。

-s :指定主題;如果主題包含空格,請使用引號。

-c : 將副本發送到以逗號分隔的用戶列表。

-b : 將密件發送到以逗號分隔的用戶列表。

希望我的回答能解開你的疑惑。

從手冊頁:

發送郵件

要將消息發送給一個或多個人,可以使用參數調用 mailx,這些參數是將向其發送郵件的人的姓名。 然后希望用戶輸入他的消息,然后在一行的開頭輸入“control-D”。

換句話說,mailx 從標准輸入讀取要發送的內容,並且可以像正常一樣重定向。 例如:

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

自定義發件人地址

MESSAGE="SOME MESSAGE"
SUBJECT="SOME SUBJECT"
TOADDR="u@u.com"
FROM="DONOTREPLY"

echo $MESSAGE | mail  -s "$SUBJECT" $TOADDR  -- -f $FROM

這是一個多功能功能,用於處理帶有多個附件的郵件發送:

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}
}

函數調用:enviaremail "smtp.mailserver:port" "from_address" "authuser" "'pass'" "destination" "以空格分隔的附件列表"

注意:去掉調用中的雙引號

另外請記得在使用該函數之前在外部定義電子郵件的 $titulo(主題)和 $cuerpo(正文)

如果您要發送兩個以上的人或 DL :

echo "Message Body" | mailx -s "Message Title" -r sender@someone.com receiver1@someone.com,receiver_dl@.com

這里:

  • -s = 主題或郵件標題
  • -r = 發件人郵件或 DL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM