Як я можу надіслати електронне повідомлення за допомогою mailx
команди UNIX ?
Як я можу надіслати електронне повідомлення за допомогою mailx
команди UNIX ?
Відповіді:
приклад
$ 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
mail
.
uuencode
це застаріла технологія минулого тисячоліття, яка не дає того, що ми сьогодні маємо на увазі під "прихильністю". В основному це ставить машиночитаний шматок перемішування в кінці тексту повідомлення. У ці дні і віки вам краще служитиме кореспондент, належним чином відомий MIME. На жаль, не існує універсальної mailx
заміни функцій MIME, але якщо у вас є mutt
, це, мабуть, шлях найменшого опору.
Ось ви:
echo "Body" | mailx -r "FROM_EMAIL" -s "SUBJECT" "To_EMAIL"
PS. Тіло та тема повинні міститися в подвійних лапках. Видаліть лапки зFROM_EMAIL
і To_EMAIL
замінюючи адреси електронної пошти.
mailx -s "subjec_of_mail" abc@domail.com < file_name
за допомогою mailx
утиліти ми можемо надіслати файл з unix
до mail server
. тут у наведеному вище коді ми бачимо, що перший параметр - -s "subject of mail"
це другий параметр, mail ID
а останній параметр - це назва файлу, який ми хочемо прикріпити
mail [-s subject] [-c ccaddress] [-b bccaddress] toaddress
-c та -b не є обов'язковими.
-s: Вкажіть тему; якщо тема містить пробіли, використовуйте лапки.
-c: Надіслати копії списку користувачів, розділених комами.
-b: Надіслати сліпі копії копій до списку користувачів, розділених комами.
Сподіваюся, моя відповідь прояснить ваші сумніви.
Це швидше за допомогою команди 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
Зі сторінки користувача:
Відправлення пошти
Щоб надіслати повідомлення одному або декільком людям, можна викликати 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
mail
і mailx
команд з різними опціями.
Ось багатофункціональна функція для вирішення питань надсилання пошти з кількома вкладеннями:
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
тут: