Wie kann ich eine E-Mail über den UNIX- mailx
Befehl senden ?
Wie kann ich eine E-Mail über den UNIX- mailx
Befehl senden ?
Antworten:
ein Beispiel
$ echo "something" | mailx -s "subject" recipient@somewhere.com
Anhang senden
$ uuencode file file | mailx -s "subject" recipient@somewhere.com
und um Anhang zu senden UND den Nachrichtentext zu schreiben
$ (echo "something\n" ; uuencode file file) | mailx -s "subject" recipient@somewhere.com
mail
.
uuencode
eine Legacy-Technologie aus einem vergangenen Jahrtausend ist, die nicht das produziert, was wir heute unter "Anhängen" verstehen. Grundsätzlich wird am Ende des Nachrichtentextes ein maschinenlesbares Durcheinander eingefügt. In der heutigen Zeit werden Sie besser von einem ordnungsgemäß MIME-fähigen Mailer bedient. Leider gibt es keinen allgemein unterstützten mailx
Ersatz durch MIME-Funktionen, aber wenn ja mutt
, ist dies wahrscheinlich der Weg des geringsten Widerstands.
Hier sind Sie ja :
echo "Body" | mailx -r "FROM_EMAIL" -s "SUBJECT" "To_EMAIL"
PS. Körper und Thema sollten in doppelten Anführungszeichen gehalten werden. Entfernen Sie Anführungszeichen aus FROM_EMAIL
und To_EMAIL
beim Ersetzen von E-Mail-Adressen.
mailx -s "subjec_of_mail" abc@domail.com < file_name
Über das mailx
Dienstprogramm können wir eine Datei von unix
nach senden mail server
. Hier im obigen Code sehen wir, dass der erste Parameter -s "subject of mail"
der zweite Parameter ist mail ID
und der letzte Parameter der Name der Datei ist, die wir anhängen möchten
mail [-s subject] [-c ccaddress] [-b bccaddress] toaddress
-c und -b sind optional.
-s: Geben Sie den Betreff an. Wenn der Betreff Leerzeichen enthält, verwenden Sie Anführungszeichen.
-c: Durchschicken von Kopien an die durch Komma getrennte Liste der Benutzer.
-b: Senden Sie blinde Kopien an die durch Komma getrennte Liste der Benutzer.
Hoffe, meine Antwort klärt Ihren Zweifel.
Mit dem Befehl MUTT ist es schneller
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
Von der Manpage:
Nachrichten senden
Um eine Nachricht an eine oder mehrere Personen zu senden, kann mailx mit Argumenten aufgerufen werden, bei denen es sich um die Namen der Personen handelt, an die die E-Mail gesendet wird. Vom Benutzer wird dann erwartet, dass er seine Nachricht eingibt, gefolgt von einem 'Steuer-D' am Anfang einer Zeile.
Mit anderen Worten, mailx liest den zu sendenden Inhalt von der Standardeingabe und kann wie gewohnt umgeleitet werden. Z.B:
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
Anpassen der FROM-Adresse
MESSAGE="SOME MESSAGE"
SUBJECT="SOME SUBJECT"
TOADDR="u@u.com"
FROM="DONOTREPLY"
echo $MESSAGE | mail -s "$SUBJECT" $TOADDR -- -f $FROM
mail
und mailx
Befehle mit unterschiedlichen Optionen.
Hier ist eine multifunktionale Funktion zum Versenden von E-Mails mit mehreren Anhängen:
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}
}
Funktionsaufruf: enviaremail "smtp.mailserver: port" "from_address" "authuser" "'pass'" "destination" "Liste der durch Leerzeichen getrennten Anhänge"
Hinweis: Entfernen Sie die doppelten Anführungszeichen im Aufruf
Denken Sie außerdem daran, das $ titulo (Betreff) und $ cuerpo (Text) der E-Mail extern zu definieren, bevor Sie die Funktion verwenden
Wenn Sie mehr als zwei Personen oder DL senden möchten:
echo "Message Body" | mailx -s "Message Title" -r sender@someone.com receiver1@someone.com,receiver_dl@.com
Hier: