console output mailen naar mijzelf (ssmtp)

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • EverLast2002
  • Registratie: Maart 2013
  • Laatst online: 20:56
Mijn vraag

welk commando moet ik gebruiken om een regel tekst van een Linux console te emailen?
Ik gebruik nu: curl https://ipecho.net/plain ; echo
Het ip adres dat verschijnt wil ik naar mijzelf mailen m.b.v. ssmtp


Relevante software en hardware die ik gebruik
Centos 7 (minimal version no desktop)
ssmtp

Wat ik al gevonden of geprobeerd heb
google

Beste antwoord (via EverLast2002 op 15-12-2018 16:08)


  • aawe mwan
  • Registratie: December 2002
  • Laatst online: 21:38

aawe mwan

Wat ook leuk is:

Zo te zien is de echo weldegelijk nodig, omdat de output van curl zelf geen enkel regeleinde heeft en daardoor de tekst van het mailtje leeg zal blijven.

Het lijkt me handiger om zoiets te gebruiken, met subjectregel:
code:
1
2
3
ip=$(curl https://ipecho.net/plain); \
 echo -e "To: mijzelf\nSubject: Mijn IP adres\nMijn IP adres is momenteel $ip." | \
 ssmtp mail@example.com

„Ik kan ook ICT, want heel moeilijk is dit niet”

Alle reacties


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 21:21

Hero of Time

Moderator LNX

There is only one Legend

En op welke termen heb je gezocht? Er zijn nogal wat mogelijkheden om dit te doen. Zo kan je uitvoer redirecten, maar ook direct iets uitvoeren terwijl je andere uitvoer genereert.

Commandline FTW | Tweakt met mate


Acties:
  • +1 Henk 'm!

  • eric.1
  • Registratie: Juli 2014
  • Laatst online: 22:19
command | mail -s "subject" "email"

Zoiets kan al werken, toch?

Anders een scriptje maken oid welke je output wegschrijft naar een file en vervolgens de inhoud van die file wegsturen via mail(x) en tot slot weer het bestand opruimen?

Als je Google hebt gebruikt moet je wel meer hebben kunnen vinden lijkt me.

Acties:
  • 0 Henk 'm!

  • EverLast2002
  • Registratie: Maart 2013
  • Laatst online: 20:56
Hero of Time schreef op vrijdag 14 december 2018 @ 13:02:
En op welke termen heb je gezocht? Er zijn nogal wat mogelijkheden om dit te doen. Zo kan je uitvoer redirecten, maar ook direct iets uitvoeren terwijl je andere uitvoer genereert.
- ssmtp mail public ip to self
- mail public ip to myself
- ssmtp console output send to mail

Ik ben geen console guru, ergens zal wel een switch of een commando bestaan
om dit simpele regeltje te mailen..
Een blanco mailtje sturen is geen probleem, en daarin staat ook het ip adres dat ik moet hebben (view source).
Maar ik wil graag 1x een ip adres in een mail.

Acties:
  • 0 Henk 'm!

  • EverLast2002
  • Registratie: Maart 2013
  • Laatst online: 20:56
eric.1 schreef op vrijdag 14 december 2018 @ 13:24:
command | mail -s "subject" "email"

Zoiets kan al werken, toch?

Anders een scriptje maken oid welke je output wegschrijft naar een file en vervolgens de inhoud van die file wegsturen via mail(x) en tot slot weer het bestand opruimen?

Als je Google hebt gebruikt moet je wel meer hebben kunnen vinden lijkt me.
Geprobeerd, werkt niet.
In pfSense met mailreport had ik het werkend.
Het commando was daarin: fetch -q -o - http://ipecho.net/plain
Mailreport kun je dan zo instellen dat ie dit elke ochtend naar je mailt.

Acties:
  • 0 Henk 'm!

  • Bart
  • Registratie: Februari 2001
  • Laatst online: 29-09 11:59
Wat werkt er dan precies niet? Het volgende werkt namelijk prima bij mij:

curl https://ipecho.net/plain | mail -s IP mail@example.com

Levert netjes een mailtje op met daarin het publieke IP adres.

I'm not deaf, I'm just ignoring you.


Acties:
  • 0 Henk 'm!

  • EverLast2002
  • Registratie: Maart 2013
  • Laatst online: 20:56
Bart schreef op vrijdag 14 december 2018 @ 19:06:
Wat werkt er dan precies niet? Het volgende werkt namelijk prima bij mij:

curl https://ipecho.net/plain | mail -s IP mail@example.com

Levert netjes een mailtje op met daarin het publieke IP adres.
Het commando "mail" kent ie niet, ik gebruik ssmtp..

Acties:
  • 0 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 21:14
Je vraag is dus niet hoe je console output moet mailen, maar hoe je een mail client op je linux bak zet. Als je dat nu eens eerst opzoekt: Configuring ssmtp on CentOS.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • EverLast2002
  • Registratie: Maart 2013
  • Laatst online: 20:56
CurlyMo schreef op vrijdag 14 december 2018 @ 20:00:
Je vraag is dus niet hoe je console output moet mailen, maar hoe je een mail client op je linux bak zet. Als je dat nu eens eerst opzoekt: Configuring ssmtp on CentOS.
Ik kan gewoon mailtjes versturen met subject en body etc, komen prima aan. Geen probleem.
Wat me niet lukt is om een simpel regeltje met een ip adres door te mailen...

Acties:
  • 0 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 21:14
EverLast2002 schreef op vrijdag 14 december 2018 @ 20:05:
[...]

Ik kan gewoon mailtjes versturen met subject en body etc, komen prima aan. Geen probleem.
Wat me niet lukt is om een simpel regeltje met een ip adres door te mailen...
Welk commando gebruik je daarvoor?

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • EverLast2002
  • Registratie: Maart 2013
  • Laatst online: 20:56
CurlyMo schreef op vrijdag 14 december 2018 @ 20:07:
[...]

Welk commando gebruik je daarvoor?
Dit werkt:
printf "Subject: Test\n\nTesting...1...2...3" | ssmtp mail@example.com

Dit werkt niet:
curl https://ipecho.net/plain ; echo | ssmtp mail@example.com
wget https://ipecho.net/plain -O - -q | ssmtp mail@example.com

Acties:
  • 0 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 21:14
EverLast2002 schreef op vrijdag 14 december 2018 @ 20:19:
[...]

Dit werkt:
code:
1
printf "Subject: Test\n\nTesting...1...2...3" | ssmtp mail@example.com


Dit werkt niet:
code:
1
2
curl https://ipecho.net/plain ; echo | ssmtp mail@example.com
wget https://ipecho.net/plain  -O - -q | ssmtp mail@example.com
En je wget commando werkt wel zonder je pipe? Die curl is inderdaad niet zoals het hoort (voor dit doel) en dat gaat dus zo ook niet werken.

[ Voor 4% gewijzigd door CurlyMo op 14-12-2018 20:39 ]

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • Jimbolino
  • Registratie: Januari 2001
  • Laatst online: 20-09 08:54

Jimbolino

troep.com

ssmtp is geen mail client maar een sendmail emulator. Je zult dus je eigen headers mee moeten sturen (oa. een subject)

makkelijker is om mailx te installeren. alternatief kun je een header erbij voegen:
https://ubuntuforums.org/showthread.php?t=743404


edit:
CurlyMo schreef op vrijdag 14 december 2018 @ 20:29:
[...]

En je wget commando werkt wel zonder je pipe? Die curl is inderdaad niet zoals het hoort en dat gaat zo ook niet werken.
niks mis met het curl command hoor

[ Voor 36% gewijzigd door Jimbolino op 14-12-2018 20:31 ]

The two basic principles of Windows system administration:
For minor problems, reboot
For major problems, reinstall


Acties:
  • 0 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 21:14
Jimbolino schreef op vrijdag 14 december 2018 @ 20:30:
niks mis met het curl command hoor
Losstaand niet nee, maar wel in dit doel. De output van curl gaat nu niet naar stdout zoals dat bij wget in dit geval wel gebeurt.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • +1 Henk 'm!

  • Jimbolino
  • Registratie: Januari 2001
  • Laatst online: 20-09 08:54

Jimbolino

troep.com

CurlyMo schreef op vrijdag 14 december 2018 @ 20:32:
[...]

Losstaand niet nee, maar wel in dit doel. De output van curl gaat nu niet naar stdout zoals dat bij wget in dit geval wel gebeurt.
oja je hebt gelijk, de pipe werkt alleen maar op het laatste command:

code:
1
(curl https://ipecho.net/plain ; echo ; echo ) | mail -s IP mail@example.com

The two basic principles of Windows system administration:
For minor problems, reboot
For major problems, reinstall


Acties:
  • 0 Henk 'm!

  • Freeaqingme
  • Registratie: April 2006
  • Laatst online: 13:53
Het is misschien een beetje omslachtig, maar je zou het wel kunnen beschrijven als de tweakers methode:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/bin/sh

function checkStatus {
  expect=250
  if [ $# -eq 3 ] ; then
    expect="${3}"
  fi
  if [ $1 -ne $expect ] ; then
    echo "Error: ${2}"
    exit
  fi
}

MyHost=`hostname`

read -p "Enter your mail host: " MailHost
MailPort=25

read -p "From: " FromAddr
read -p "To: " ToAddr
read -p "Subject: " Subject
read -p "Message: " Message

exec 3<>/dev/tcp/${MailHost}/${MailPort}

read -u 3 sts line
checkStatus "${sts}" "${line}" 220

echo "HELO ${MyHost}" >&3

read -u 3 sts line
checkStatus "$sts" "$line"

echo "MAIL FROM: ${FromAddr}" >&3

read -u 3 sts line
checkStatus "$sts" "$line"

echo "RCPT TO: ${ToAddr}" >&3

read -u 3 sts line
checkStatus "$sts" "$line"

echo "DATA" >&3

read -u 3 sts line
checkStatus "$sts" "$line" 354

echo "Subject: ${Subject}" >&3
echo "${Message}" >&3
echo "." >&3

read -u 3 sts line
checkStatus "$sts" "$line"


Bron: https://stackoverflow.com...s-by-bash-script-via-smtp

No trees were harmed in creating this message. However, a large number of electrons were terribly inconvenienced.


Acties:
  • +1 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 21:21

Hero of Time

Moderator LNX

There is only one Legend

Dat is wel flinke overkill.

@EverLast2002, weet je ook dat je meerdere berichten in 1 kan plaatsen? Dubbelposten is niet echt gewenst hier. Je kan altijd je laatste bericht aanpassen als je de laatste bent die gereageerd heeft.

Verders heb je niet echt nagedacht over wat je probleem nou werkelijk is. Je wilt een mail sturen zonder mail client, dat maakt het alleen maar lastiger voor jezelf. Mailx bevat het mail commando en die gebruikt wat voor MTA (zeg maar mailserver) er op je systeem staat.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • EverLast2002
  • Registratie: Maart 2013
  • Laatst online: 20:56
Jimbolino schreef op vrijdag 14 december 2018 @ 20:44:
[...]

oja je hebt gelijk, de pipe werkt alleen maar op het laatste command:

code:
1
(curl https://ipecho.net/plain ; echo ; echo ) | mail -s IP mail@example.com
Kijk, nu heb ik het werkend!
Die regel die je opgaf door curl tussen haakjes te zetten deed de truc.
Ik heb wel het commando iets aangepast:
(curl https://ipecho.net/plain ; echo) | ssmtp mail@example.com

Iedereen bedankt voor het meedenken :)

Acties:
  • +1 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 21:14
EverLast2002 schreef op zaterdag 15 december 2018 @ 13:31:
[...]
Iedereen bedankt voor het meedenken :)
Maar snap je het nu ook? :)

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • EverLast2002
  • Registratie: Maart 2013
  • Laatst online: 20:56
Ik vermoed dat wat nu tussen haakjes () staat in 1 commando wordt uitgevoerd en daarna wordt doorgestuurd (pipe) naar het mailadres.
- edit: wat me nu niet meer lukt is om een Subject toe te voegen......kan ik mee leven, maar toch jammer.

Acties:
  • 0 Henk 'm!

  • Keuvie
  • Registratie: Oktober 2005
  • Laatst online: 21-09 16:41
Je kan het command ook versimpelen naar:
code:
1
curl https://ipecho.net/plain  | ssmtp mail@example.com

De `echo` is niet nodig.

Mocht dit een cronjob zijn dan kan je het nog makkelijker maken.
code:
1
2
MAILTO=mail@example.com
0 8 * * * /usr/bin/curl https://ipecho.net/plain


Edit:
https://linux.die.net/man/8/ssmtp
Het is volgens de handleiding niet mogelijk een subject toe te voegen.

[ Voor 16% gewijzigd door Keuvie op 15-12-2018 15:34 ]


Acties:
  • 0 Henk 'm!

  • EverLast2002
  • Registratie: Maart 2013
  • Laatst online: 20:56
Keuvie schreef op zaterdag 15 december 2018 @ 15:32:
Je kan het command ook versimpelen naar:
code:
1
curl https://ipecho.net/plain  | ssmtp mail@example.com

De `echo` is niet nodig.

Mocht dit een cronjob zijn dan kan je het nog makkelijker maken.
code:
1
2
MAILTO=mail@example.com
0 8 * * * /usr/bin/curl https://ipecho.net/plain
Het weglaten van de haakjes () resulteert (bij mij) in een leeg mailtje.

Acties:
  • Beste antwoord
  • +2 Henk 'm!

  • aawe mwan
  • Registratie: December 2002
  • Laatst online: 21:38

aawe mwan

Wat ook leuk is:

Zo te zien is de echo weldegelijk nodig, omdat de output van curl zelf geen enkel regeleinde heeft en daardoor de tekst van het mailtje leeg zal blijven.

Het lijkt me handiger om zoiets te gebruiken, met subjectregel:
code:
1
2
3
ip=$(curl https://ipecho.net/plain); \
 echo -e "To: mijzelf\nSubject: Mijn IP adres\nMijn IP adres is momenteel $ip." | \
 ssmtp mail@example.com

„Ik kan ook ICT, want heel moeilijk is dit niet”


Acties:
  • 0 Henk 'm!

  • EverLast2002
  • Registratie: Maart 2013
  • Laatst online: 20:56
aawe mwan schreef op zaterdag 15 december 2018 @ 16:01:
Zo te zien is de echo weldegelijk nodig, omdat de output van curl zelf geen enkel regeleinde heeft en daardoor de tekst van het mailtje leeg zal blijven.

Het lijkt me handiger om zoiets te gebruiken, met subjectregel:
code:
1
2
3
ip=$(curl https://ipecho.net/plain); \
 echo -e "To: mijzelf\nSubject: Mijn IP adres\nMijn IP adres is momenteel $ip." | \
 ssmtp mail@example.com
Helemaal zoals ik hem wilde hebben!! _/-\o_
Pagina: 1