WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Linux, UNIX, Open Source (http://www.wcm.at/forum/forumdisplay.php?f=13)
-   -   Mail aus einem Script senden (http://www.wcm.at/forum/showthread.php?t=159411)

robi1a 22.02.2005 00:41

Mail aus einem Script senden
 
Hallo
Seit tagen quält mich ein kleines Problemchen, dass ich einfach nicht hinbekomme. Ich möchte einfach nur eine Mail aus einem Shellscript senden (soll die Benachrichtigung eines Fehlers sein).
Habe schon mit mail+postfix, pine, mutt herum probiert aber es will mir nicht gelingen. Eigentlich möchte ich gar keinen MTA laufen haben, d.h. ich muss den SMTP Server vom Provider angeben und Userid und PW (weil SMTP Server es verlangt). Hat jemand eine einfach Lösung?

Juro 22.02.2005 09:53

Naja, soviel ich verstanden habe brauchst Du einen MDA, der Deine Mail an den SMTP des Providers schickt. Ansonsten pipe-st Du einfach die Nachricht an mail.

robi1a 22.02.2005 21:36

Genau das ist mein Problem. Ich habe Postfix ausprobiert, funktionierte aber nicht weil Postfix sich am Mailserver nicht authentiziert. Aber eigentlich wollte ich mir das ersparen. Unter Windows gibt es zig Mailprogramme die das alles ganz einfach erledigen. Ich kann mir nicht vorstellen das es sowas unter Linux nicht gibt. Soviel ich weis kann man das mit sendmail erreichen, allerdings, ich hab es zumindest versucht, wird daraus eine Doktorarbeit.

spunz 22.02.2005 22:14

postfix/exim und smtp auth sollte eigentlich kein problem sein? sendmail ist nur ein weiterer mta, ich würde dir zu exim/postfix raten.

unter linux gibt es übrigens auch unzählige mail programme wie evolution, kmail, thunderbird,... wo du ohne mta auskommst, aber du möchtest eben per script arbeiten. ;)

http://www.linuxforen.de/forums/showthread.php?t=66785
http://postfix.state-of-mind.de/patr...tter/smtpauth/
http://www.pro-linux.de/t_netzwerk/p...-HOWTO-de.html
2

MANX 22.02.2005 23:01

Hi!

einen MTA hast Du zwar sicher laufen, aber wenn's ein Script sein soll, dann PERL!

http://search.cpan.org/~gbarr/libnet/Net/SMTP.pm
http://lists.suse.com/archive/suse-l...-Dec/3342.html

Grüße

Manx

m@rio 22.02.2005 23:05

Probiers mit einem einfach bash Script.

#!/bin/sh
telnet 12.34.56.78 25 <<+++++
ehlo irgendwas
auth plain olzzlcgB172V8AHBhcdM==
mail from: dein@abssender.at
rcpt to: dein@empfaenger.com
data
Dein Text
Mehrtext ....tralalala
.
quit
+++++


Alles was zwischen den beiden "+++++" steht wird per telnet an den Server geschickt.
Alles zwischen "data" und "." ist der Text deiner Mail.
Einen Betreff kann man mit "Subject: Betreff" zwischen data und Text einfügen.

Die SMTP Authentifizierung ist ein wenig schwieriger. Dazu musst du zuerst deinen Usernamen/Passwort MIME codieren.
printf 'deinusername\0deinusername\0passwort' | mimencode
Den Output davon trägst du dann nach dem auth plain ein.

_m3 23.02.2005 10:50

Zitat:

Original geschrieben von m@rio
ehlo irgendwas
Das ist so nicht richtig. RFC 2821 definiert ganz genau, was nach dem EHLO zu stehen hat:
Zitat:

4.1.1.1 Extended HELLO (EHLO) or HELLO (HELO)

These commands are used to identify the SMTP client to the SMTP
server. The argument field contains the fully-qualified domain name
of the SMTP client if one is available. In situations in which the
SMTP client system does not have a meaningful domain name (e.g., when
its address is dynamically allocated and no reverse mapping record is
available), the client SHOULD send an address literal (see section
4.1.3), optionally followed by information that will help to identify
the client system.
ftp://ftp.rfc-editor.org/in-notes/rfc2821.txt

m@rio 23.02.2005 11:25

Zitat:

Original geschrieben von _m3
Das ist so nicht richtig. RFC 2821 definiert ganz genau, was nach dem EHLO zu stehen hat
Stimmt.
Wird aber von allen mir bekannten MTAs per default komplett ignoriert. Weil einfach zu viele "broken Clients" unterwegs sind (so wie dieser z.B. ;-).
Lediglich manche Spamfilter bemerken es korrekterweise.

robi1a 24.02.2005 19:53

Das mit dem telnet Script gefällt mir sehr gut. Ich hab es ausprobiert nur irgendwas passt nicht ganz. Verbindung wird vom Server sofort beendet.

Trying 213.165.64.20...
Connected to mail.gmx.at.
Escape character is '^]'.
Connection closed by foreign host.

Händisch funktioniert es, also User und PW mime encodet müssten passen.

robi1a 24.02.2005 19:53

Das mit dem telnet Script gefällt mir sehr gut. Ich hab es ausprobiert nur irgendwas passt nicht ganz. Verbindung wird vom Server sofort beendet.

Trying 213.165.64.20...
Connected to mail.gmx.at.
Escape character is '^]'.
Connection closed by foreign host.

Händisch funktioniert es, also User und PW mime encodet müssten passen.

_m3 25.02.2005 10:56

Also "kraenker" gehts kaum noch, oder? ;)

Robi1a: Ganz einfache Loesung: Du installierst wieder postfx lokal auf Deinem Rechner und konfigurierst es so, dass es alle Mails an einen Smarthost (den SMTP-Server Deines Providers) weiterleitet. Eine Anleitung dazu gibt es unter http://efflandt.freeshell.org/sbc-smtp-auth.html

Anschliessend kannst Du einfach auf der Kommandozeile "mail" verwenden, um Mails zu versenden.

HTH

m@rio 25.02.2005 11:36

Zitat:

Original geschrieben von _m3
Also "kraenker" gehts kaum noch, oder? ;)
Ja, sicher ist es krank. Aber einen kompletten MTA zu installieren um mal kurz ein Mail zu verschicken ist doch auch irgendwie krank oder?
Mich wundert vielmehr, daß es offenbar keine Alternative dazu gibt. Zumindest hab ich vor einiger Zeit im google intensiv danach gesucht, aber absolut nichts gefunden.

Zitat:

Original geschrieben von robi1a
Verbindung wird vom Server sofort beendet.
Trying 213.165.64.20...
Connected to mail.gmx.at.
Escape character is '^]'.
Connection closed by foreign host.

Was du an den Server per telenet weitergibst wird nicht angezeigt. Ich bekomm auch die gleiche Ausgabe, die Mail wird aber korrekt verschickt.

_m3 25.02.2005 11:57

Das ist nicht krank, das ist "the UNIX way" ;)

Ein UNIX System geht im Normalfall davon aus, dass ein MTA installiert ist.

Es gaebe da auch noch das eine oder andere Perl-Script, das genau das kann, was robi1a sucht.

http://search.cpan.org/~mthurn/Email...-1.007/Auth.pm
http://www.logix.cz/michal/devel/smt...ted=1&msgid=31

robi1a 25.02.2005 20:00

Krank oder nicht krank. Viele Wege führen nach Rom. Das was ich erreichen will ist, dass eine Mail geschickt wenn die tägliche Sicherung nicht korrekt durchläuft. Also normalerweise krieg ich keine Mail. Und weil eben keine Mail verschickt soll Postfix laufen? Find ich eigentlich sinnlos. Wobei es überhaupt nicht darum geht wieviel ein nichts tuender Postfix an Ressourcen braucht.

Mein Verständnis von UNIX-like ist, daß UNIX (egal welches) so flexibel ist, daß man es sich auf wirklich 100% seiner Bedürfnisse anpassen kann. Und das versuche ich damit.

m@rio vielleicht noch ein Tipp. Ich habe es jetzt hinbekommen sogar mit den SMTP Meldungen. Ich habe einfach telnet durch netcat ersetzt.

pc.net 25.02.2005 20:28

die 100%ige anpassung an deine bedürfnisse findet folgendermaßen statt ...

wenn ein mail verschickt werden soll, vorher scriptmäßig den MTA starten und nach erfolgreichem mail-versand wieder beenden ;) ...

Who-T 02.03.2005 04:40

http://esmtp.sourceforge.net/
vielleicht ist das was du suchst


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:36 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag