Как я могу отправить электронное письмо с помощью команды UNIX mailx? - PullRequest
86 голосов
/ 17 февраля 2010

Как я могу отправить электронное письмо с помощью команды UNIX mailx?

Ответы [ 10 ]

101 голосов
/ 17 февраля 2010

пример

$ 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
27 голосов
/ 31 декабря 2012

Вот вы:

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

PS. Тело и предмет должны быть в двойных кавычках. Удалите кавычки из FROM_EMAIL и To_EMAIL при замене адресов электронной почты.

6 голосов
/ 01 июня 2016
mailx -s "subjec_of_mail" abc@domail.com < file_name
Утилиты

- mailx мы можем отправить файл от unix до mail server. здесь в коде выше мы можем увидеть первый параметр -s "subject of mail" второй параметр - mail ID, а последний параметр - имя файла, который мы хотим прикрепить

5 голосов
/ 08 января 2013

быстрее с командой 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 email cc list
  2. -s тематический список
  3. -й, чтобы отправить письмо
4 голосов
/ 26 июня 2013
mail [-s subject] [-c ccaddress] [-b bccaddress] toaddress

-c и -b являются необязательными.

-s: указать тему, если тема содержит пробелы, использовать кавычки.

-c: отправить копии в список пользователей, разделенных запятой.

-b: отправлять скрытые копии списка пользователей, разделенных запятой.

Надеюсь, мой ответ прояснит ваше сомнение.

4 голосов
/ 17 февраля 2010

со страницы руководства:

Отправка почты

Чтобы отправить сообщение одному или нескольким людям, mailx может быть вызван с аргументы, которые являются именами люди, которым будет отправлено письмо. Затем пользователь должен ввести его сообщение, а затем «Control-D» в начале строки.

Другими словами, mailx читает содержимое для отправки со стандартного ввода и может быть перенаправлено как обычное. E.g.:

ls -l $HOME | mailx -s "The content of my home directory" someone@email.adr
3 голосов
/ 05 декабря 2014
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
1 голос
/ 15 декабря 2016

Настройка с адреса

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

echo $MESSAGE | mail  -s "$SUBJECT" $TOADDR  -- -f $FROM
0 голосов
/ 29 ноября 2018

Вот многофункциональная функция для отправки почты с несколькими вложениями:

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: порт" "from_address" "authuser" "'pass'" "destination" "список вложений через пробел"

Примечание: убрать двойные кавычки в вызове

Кроме того, не забывайте определять внешне $ titulo (subject) и $ cuerpo (body) письма до использования функции

0 голосов
/ 26 октября 2018

Если вы хотите отправить более двух человек или DL:

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

здесь:

  • -s = тема или заголовок письма
  • -r = отправитель почты или DL
...