Como posso enviar um e-mail por meio do mailx
comando UNIX ?
Como posso enviar um e-mail por meio do mailx
comando UNIX ?
Respostas:
um exemplo
$ echo "something" | mailx -s "subject" recipient@somewhere.com
enviar anexo
$ uuencode file file | mailx -s "subject" recipient@somewhere.com
e enviar anexo E escrever o corpo da mensagem
$ (echo "something\n" ; uuencode file file) | mailx -s "subject" recipient@somewhere.com
mail
.
uuencode
é uma tecnologia legada de um milênio passado que não produz o que hoje chamamos de "anexos". Basicamente, ele coloca uma confusão legível por máquina no final do texto da mensagem. Nos dias de hoje, você seria melhor atendido por um remetente de correio devidamente ciente do MIME. Infelizmente, não existe um mailx
substituto universalmente compatível com os recursos MIME, mas se você tiver mutt
, esse é provavelmente o caminho de menor resistência.
Olha Você aqui :
echo "Body" | mailx -r "FROM_EMAIL" -s "SUBJECT" "To_EMAIL"
PS. Corpo e assunto devem ser mantidos entre aspas duplas. Remova citações de FROM_EMAIL
e To_EMAIL
ao substituir endereços de e-mail.
mailx -s "subjec_of_mail" abc@domail.com < file_name
através do mailx
utilitário, podemos enviar um arquivo de unix
para mail server
. aqui no código acima podemos ver que o primeiro parâmetroéo -s "subject of mail"
segundo parâmetroée mail ID
o último parâmetroéo nome do arquivo que queremos anexar
mail [-s subject] [-c ccaddress] [-b bccaddress] toaddress
-c e -b são opcionais.
-s: Especifique o assunto; se o assunto contiver espaços, use aspas.
-c: Envia cópias carbono para a lista de usuários separados por vírgula.
-b: Envia cópias ocultas de carbono para a lista de usuários separados por vírgula.
Espero que minha resposta esclareça sua dúvida.
É mais rápido com o comando 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
Na página de manual:
Enviando email
Para enviar uma mensagem para uma ou mais pessoas, mailx pode ser invocado com argumentos que são os nomes das pessoas para quem o e-mail será enviado. Espera-se que o usuário digite sua mensagem, seguida por um 'control-D' no início de uma linha.
Em outras palavras, o mailx lê o conteúdo a ser enviado da entrada padrão e pode ser redirecionado para o normal. Por exemplo:
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
Personalizando o endereço DE
MESSAGE="SOME MESSAGE"
SUBJECT="SOME SUBJECT"
TOADDR="u@u.com"
FROM="DONOTREPLY"
echo $MESSAGE | mail -s "$SUBJECT" $TOADDR -- -f $FROM
mail
e concorrentes incompatíveis mailx
com opções diferentes.
Esta é uma função multifuncional para lidar com o envio de e-mail com vários anexos:
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}
}
chamada de função: enviaremail "smtp.mailserver: port" "from_address" "authuser" "'pass'" "destination" "lista de anexos separados por espaço"
Nota: Remova as aspas duplas na chamada
Além disso, lembre-se de definir externamente o $ titulo (assunto) e $ cuerpo (corpo) do e-mail antes de usar a função
Se você deseja enviar mais de duas pessoas ou DL:
echo "Message Body" | mailx -s "Message Title" -r sender@someone.com receiver1@someone.com,receiver_dl@.com
aqui: