[gelöst] Mailversand über Kommandozeile (mailx mit TLS)
[gelöst] Mailversand über Kommandozeile (mailx mit TLS)
hallo forum,
gnude hat auf seinem blog eine mailbenachrichtigung bei ssh-login vorgestellt.
das will ich auch haben! die mail soll aber an meinen privaten account (web.de, gmail, gmx, sowas halt) geschickt werden, und der verlangt eine authentifizierung, die mailx nicht leisten kann (wenn ich das richtig sehe).
kann mir jemand ein schlankes programm empfehlen? cli bitte und mailversand reicht.
grüße
manes
gnude hat auf seinem blog eine mailbenachrichtigung bei ssh-login vorgestellt.
das will ich auch haben! die mail soll aber an meinen privaten account (web.de, gmail, gmx, sowas halt) geschickt werden, und der verlangt eine authentifizierung, die mailx nicht leisten kann (wenn ich das richtig sehe).
kann mir jemand ein schlankes programm empfehlen? cli bitte und mailversand reicht.
grüße
manes
Zuletzt geändert von manes am 14.03.2012 15:42:36, insgesamt 1-mal geändert.
Sometimes you have a programming problem and it seems like the best solution is to use regular expressions; now you have two problems.
David Mertz
David Mertz
Re: womit mailversand über kommandozeile
mutt laesst sich recht brauchbar scripten.manes hat geschrieben: cli bitte und mailversand reicht.
Re: womit mailversand über kommandozeile
danke!
ich hatte an irgendetwas ganz schlankes gedacht: kann sonst nix und daher auch keine probleme bereiten.
wenn niemand mutt unterbieten kann, probiere ich es damit.
grüße
manes
ich hatte an irgendetwas ganz schlankes gedacht: kann sonst nix und daher auch keine probleme bereiten.
wenn niemand mutt unterbieten kann, probiere ich es damit.
grüße
manes
Sometimes you have a programming problem and it seems like the best solution is to use regular expressions; now you have two problems.
David Mertz
David Mertz
Re: womit mailversand über kommandozeile
Oder halt direkt mit mailx:
EDIT:: Siehe auch hier: http://fclose.com/b/linux/1411/
Das nss-config-dir wirst du dir vermutlich sparen koennen.
EDIT2: Ohne firefox wuerde ich ssmtp empfehlen. Klein und steht nicht im Weg.
Code: Alles auswählen
mailx -v -s "$EMAIL_SUBJECT" \
-S smtp-use-starttls \
-S ssl-verify=ignore \
-S smtp-auth=login \
-S smtp=smtp://smtp.gmail.com:587 \
-S from="$FROM_EMAIL_ADDRESS($FRIENDLY_NAME)" \
-S smtp-auth-user=$FROM_EMAIL_ADDRESS \
-S smtp-auth-password=$EMAIL_ACCOUNT_PASSWORD \
-S ssl-verify=ignore \
-S nss-config-dir=~/.mozilla/firefox/xxxxxxxx.default/ \
$TO_EMAIL_ADDRESS
Das nss-config-dir wirst du dir vermutlich sparen koennen.
EDIT2: Ohne firefox wuerde ich ssmtp empfehlen. Klein und steht nicht im Weg.
Re: womit mailversand über kommandozeile
cool! danke nochmal!
mailx ist auf der kiste schon drauf und kann das vermisste also doch.
grüße
manes
mailx ist auf der kiste schon drauf und kann das vermisste also doch.
grüße
manes
Sometimes you have a programming problem and it seems like the best solution is to use regular expressions; now you have two problems.
David Mertz
David Mertz
Mailversand Kommandozeile (mailx mit TLS)
also für alle nochmal zum mitschreiben:
mailx ist ein virtuelles paket und enthält bsd-mailx oder heirloom-mailx. mit bsd-mailx geht das hier nicht, aber heirloom-mailx hat die notwendigen konfigurationsmöglichkeit.
in die ~/.bashrc des users einfügen:
gleichnamiges script erstellen:
und ausführbar machen.
~/.mailrc :
ab sofort wird bei jedem login ratzfatz eine mail verschickt. so richtig glücklich wäre ich, wenn eine nachricht nur rausgeht, wenn der login nicht über eine lokale ip erfolgt…
security-problem: mailzugang im klartext im userverzeichnis.
vielen dank für die unterstützung!
mailx ist ein virtuelles paket und enthält bsd-mailx oder heirloom-mailx. mit bsd-mailx geht das hier nicht, aber heirloom-mailx hat die notwendigen konfigurationsmöglichkeit.
in die ~/.bashrc des users einfügen:
Code: Alles auswählen
# mail schicken bei login in meinem useraccount
/home/<user>/login_news.sh
Code: Alles auswählen
echo 'Login on' `hostname` `who` | mailx -s "Login on `hostname` `who|awk '{print $1, $3, $4, $5}'`" <mailanschrift_des_users>
~/.mailrc :
Code: Alles auswählen
#mailkonfiguration fürs skriptgesteuerte mailversenden
set smtp-use-starttls
set ssl-verify=ignore
set smtp=<smtp-zugang-des-mailproviders:port> # z.b. smtp://mail.gmx.net:25 oder smtp://smtp.gmail.com:587
set smtp-auth=login
set smtp-auth-user=<mailanschrift_des_users>
set smtp-auth-password="<passwort_des_mailaccounts_im_klartext>"
set from=<mailanschrift_des_users>
security-problem: mailzugang im klartext im userverzeichnis.
vielen dank für die unterstützung!
Sometimes you have a programming problem and it seems like the best solution is to use regular expressions; now you have two problems.
David Mertz
David Mertz
Re: Mailversand Kommandozeile (mailx mit TLS)
Kannst du $5 nicht danach untersuchen?manes hat geschrieben: ab sofort wird bei jedem login ratzfatz eine mail verschickt. so richtig glücklich wäre ich, wenn eine nachricht nur rausgeht, wenn der login nicht über eine lokale ip erfolgt…
Re: Mailversand Kommandozeile (mailx mit TLS)
ach, ich quäle mich (und gelegentlich das forum hier) seit jahren mit meinen bash-einzeilern. immer wieder tutorials lesen (und sie sind alle gleich!) macht langsam keinen spaß mehr, weil die lernkurve allzu flach verläuft. die antwort auf deine frage lautet: nein.Liffi hat geschrieben:Kannst du $5 nicht danach untersuchen?
grüße
manes
Sometimes you have a programming problem and it seems like the best solution is to use regular expressions; now you have two problems.
David Mertz
David Mertz
Re: Mailversand Kommandozeile (mailx mit TLS)
Vielleicht solltest du noch eine 'richtig' Skriptsprache dazunehmen.manes hat geschrieben: ach, ich quäle mich (und gelegentlich das forum hier) seit jahren mit meinen bash-einzeilern.
Auch wenn in awk, sed und der bash eigentlich alles möglich ist, fühlen sich viele Dinge in Perl oder Python einfacher an.
Wenn du möglichst dich an der shell bleiben möchtest, würde ich Perl empfehlen.
Dann säh das möglicherweise so aus (orientiert sich sehr stark an deiner Lösung und ist nicht wirklich gut, zeigt aber, dass es nicht so schwer ist, das ganze in Perl umzusetzen):
Code: Alles auswählen
#!/usr/bin/perl
my $hostname = `hostname`;
my $who_complete = `who`;
my $who_line = `who|awk '{print \$1, \$3, \$4, \$5}'`;
my $from = `who|awk '{print \$5}'`;
my $email = "<mailanschrift_des_users>";
if ( not $from =~ /localhost/ )
{
`echo "'Login on ' $hostname $who" | mailx -s "Login on $hostname $who_line " $email`;
}
Re: [gelöst] Mailversand über Kommandozeile (mailx mit TLS)
vielen dank für den perl-vorschlag!
ich will ihn wohl bedenken und, wenn mal ein bißchen zeit ist, ausprobieren.
grüße
manes
ich will ihn wohl bedenken und, wenn mal ein bißchen zeit ist, ausprobieren.
grüße
manes
Sometimes you have a programming problem and it seems like the best solution is to use regular expressions; now you have two problems.
David Mertz
David Mertz