UNIX mailx
komutuyla nasıl e-posta gönderebilirim ?
UNIX mailx
komutuyla nasıl e-posta gönderebilirim ?
Yanıtlar:
Bir örnek
$ echo "something" | mailx -s "subject" recipient@somewhere.com
ek göndermek için
$ uuencode file file | mailx -s "subject" recipient@somewhere.com
ve ek göndermek VE mesaj gövdesini yazmak için
$ (echo "something\n" ; uuencode file file) | mailx -s "subject" recipient@somewhere.com
mail
.
uuencode
geçmiş bir milenyumdan kalma, bugün "eklentiler" ile kastettiğimizi üretmeyen eski bir teknoloji olduğunu unutmayın . Temel olarak mesaj metninin sonuna makine tarafından okunabilir bir karmakarışık parçası koyar. Bu gün ve çağda, MIME-bilinçli bir postacı tarafından size daha iyi hizmet verilir. Ne yazık ki, mailx
MIME özellikleriyle evrensel olarak desteklenen bir değiştirme yoktur , ancak varsa mutt
, bu muhtemelen en az direnç yoludur.
Buyrun :
echo "Body" | mailx -r "FROM_EMAIL" -s "SUBJECT" "To_EMAIL"
PS. Gövde ve konu çift tırnak içinde tutulmalıdır. E-posta adreslerini değiştirirken FROM_EMAIL
ve bunlardan alıntıları kaldırın To_EMAIL
.
mailx -s "subjec_of_mail" abc@domail.com < file_name
yoluyla mailx
fayda biz bir dosyayı gönderebilir unix
için mail server
. burada yukarıdaki kodda birinci parametrenin -s "subject of mail"
ikinci parametrenin mail ID
ve son parametrenin eklemek istediğimiz dosyanın adı olduğunu görebiliriz.
mail [-s subject] [-c ccaddress] [-b bccaddress] toaddress
-c ve -b isteğe bağlıdır.
-s: Konuyu belirtin; konu boşluk içeriyorsa tırnak işareti kullanın.
-c: Virgülle ayrılmış kullanıcılar listesine karbon kopyaları gönderin.
-b: Virgülle ayrılmış kullanıcılar listesine kör karbon kopyaları gönderin.
Umarım cevabım şüphenizi açıklığa kavuşturur.
MUTT komutu ile daha hızlı
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
echo "" | mutt -s "test" -a ./file -- name@mail.com -y
Man sayfasından:
Mail gönderiliyor
Bir veya daha fazla kişiye mesaj göndermek için mailx, postanın gönderileceği kişilerin isimleri olan argümanlarla çağrılabilir. Kullanıcının daha sonra mesajını yazması ve ardından satırın başına bir 'kontrol-D' yazması beklenir.
Başka bir deyişle, mailx gönderilecek içeriği standart girdiden okur ve normal gibi yönlendirilebilir. Örneğin:
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
KİMDEN adresini özelleştirme
MESSAGE="SOME MESSAGE"
SUBJECT="SOME SUBJECT"
TOADDR="u@u.com"
FROM="DONOTREPLY"
echo $MESSAGE | mail -s "$SUBJECT" $TOADDR -- -f $FROM
mail
ve mailx
komut vardır.
Aşağıda, birkaç ek ile posta gönderimini ele almak için çok işlevli bir işlev verilmiştir:
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}
}
function call: enviaremail "smtp.mailserver: port" "from_address" "authuser" "'pass'" "hedef" "boşlukla ayrılmış eklerin listesi"
Not: Aramadaki çift tırnak işaretlerini kaldırın
Ayrıca, işlevi kullanmadan önce e-postanın $ titulo (konu) ve $ cuerpo (gövde) kısmını harici olarak tanımlamayı unutmayın.
İkiden fazla kişi veya DL göndermek istiyorsanız:
echo "Message Body" | mailx -s "Message Title" -r sender@someone.com receiver1@someone.com,receiver_dl@.com
buraya: