• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Mails aus bash script heraus verschicken...

Hallo zusammen,

...ja, ich kenne Google und ich hab die Suche hier verwendet, ich hab auch das WIKI hier studiert ... :)
Trotzdem ne Frage zum ewig gleichen Thema:

Im Prinzip will ich das gleiche machen wie dieser User hier:

http://nixcraft.com/shell-scripting/11895-shell-script-send-email-via-smtp-username-password.html

Das hier geht in eine ähnliche Richtung wie ich will ...:
http://www.linux-club.de/viewtopic.php?f=5&t=29755&p=157465&hilit=+email+per+script#p157465

Soweit wäre es also das Kommando was zu verwenden wäre:

" echo Dies ist der Mailtext | mail -s subject joe@doe.com"
--> joe@doe.com wäre meine "normale" emailadresse

Mein Problem: SMTP !

Ich hab einen ganz einfachen Samba-Server unter Suse 11.1 aufgesetzt und arbeite viel über die Kommandozeile hab aber KDE4 installiert und verwende das z.B. für YAST oder Konquerer. Auf dem Rechner ist aber weder KMail, Thunderbird noch sonstwas in Richtung e-Mail installiert worden und mit SW-Installation hab ich (als Neuling f. Linux) leider noch massive Probleme.

In diversen Threats steht nun alles mögliche über "SendMail" "smarthost" oder "Postfix" usw. und ich hab überhaupt keine Ahnung wie ich diese SW überhaupt auf meine Kiste drauf bekomme, geschweige denn wie ich diese dann konfiguriere (falls sie nicht schon irgendwo versteckt ist).

Ich hab einen 1&1 Account und über den will/muß(?) ich wohl meine Mails vom Server verschicken.
#SMTP-SERVER #irgendein-1und1 account
smtp.1und1.com Username:pw123456


Meine Fragen daher:
Welche SW muß ich noch installieren damit ich über SMTP Mail rausbekomme?
Wie muß diese installiert werden?
Was ist dann noch zu konfigurieren damit "echo Dies ist der Mailtext | mail -s subject joe@doe.com" funktionieren würde?

Vermutlich sehe ich bloß den Wald vor lauter Bäumen nicht.

Edit:
hah ich hab grad was gefunden:
In YAST gibt es eine Stelle "Netzwerkdienste/Mail Transfer Agent" - da konnte man SMTP Daten eintragen und es wurde auch noch was installiert. Ich meine irgendwo auch was von Postfix gelesen zu haben. Da stand aber auch "mails von Root an >User< weiterleiten" und "Benutzerinformationen einstellen ?!?!?!
Ziel der Übung: der Server steht i.d.R. unbeobachtet nach Suspend-to-Disk + WOL am Login-screen. Demzufolge ist nur root in der Lage zu diesem Zeitpunkt aus scripten heraus mails zu verschicken. Wie kommt root nun an die SMTP Einstellungen??
Das o.g. Kommando hat jedenfalls nicht funktioniert, sprich es ist keine Mail bei mir im "normalen" Postfach angekommen.

Oh Mann......
Mein Dank wird Euch ewig nachschleichen....

Vielen Dank im Voraus
MobileUser
 
Zur Not bietet auch Python die Möglichkeit, ohne zusätzliche Dienste Emails per Script zu versenden:

http://www.angelfire.com/linux/tux25/python/python.html#20

Gruß
 
Hallo,

ich verwende das Kommando mailx, das hat den Vorteil, dass man auch Anhänge versenden kann.

Code:
mailx -s"Der was weiss ich wievielte Test" -A 1und1 empfaenger@ISP.de << ENDOFTEXT
Hallo mein Freund,
das ist ein test mit Umlauten äöüßÄÖÜ
Gruß
Georg
ENDOFTEXT

Zusätzlich musst du in deinem Home-Verzeichnis die Datei .mailrc mit deinen 1und1 Zugangsdaten anlegen.

Code:
$ cat .mailrc
account 1und1 {
 set from="mail@Dein_Name.de (Dein Name)"
 set smtp=smtp.1und1.com
 set smtp-auth-user=DEIN-KONTO
 set smtp-auth-password=DEIN_PASSWORT
 set sendcharsets="iso-8859-1"
}

Dann sollte es eigentlich klappen

Gruß
Georg
 
@hbgdf: spannend was es alles gibt. Da muß ich aber noch ne Sprache lernen und mir langt die bash eh schon....

@P6CNAT
das geht in die richtige Richtung :)
aber hmmm, nur fast :-o

also meine .mailrc sieht wie folgt aus:
(genau so mit allen "" und {})

account 1und1 {set from="Name_Surname@online.de"
set smtp=smtp.1und1.de
set smtp-auth-user=Name_Surname@online.de
set smtp-auth-password=password
set sendcharsets="iso-8859-1"}

das Kommando und die Fehlermeldung wie folgt:

user@Host:/var/spool/mail> echo testmailtext | mailx -s "usersubject" -A 1und1 name_user@web.de
contains invalid character '\015'
Datei oder Verzeichnis nicht gefunden
"/home/user/dead.letter" 1/13
. . . message not sent.

der testmailtext landet in einer datei "dead.letter" sonst nix.

--> ergo: da wird bisher noch nicht mal versucht auf 1&1 zuzugreifen.

Gleich Frage im Anschluß: wie wird sichergestellt, dass TLS aber ohne Verschlüsselung verwendet wird?

Danke für die Hilfe
Mobile_user
 
Hi,

\015 ist der Oktalwert für das Zeichen "Carriage Return". Das kommt in der Linuxwelt normalerweise nicht vor, ist aber Standard in Windows Textdateien. Unix/Linux Kommandos haben mit dem Zeichen Probleme.

Hast du deine .mailrc mit einem Windowseditor erzeugt?
Das wäre eine Erklärung. Die "Carriage Return" müssen alle raus. Ansonsten sieht deine Datei gut aus.

Mobile_user schrieb:
Gleich Frage im Anschluß: wie wird sichergestellt, dass TLS aber ohne Verschlüsselung verwendet wird?
Ich nehme an du meinst "Transport Layer Security"? Damit habe ich mich noch nicht beschäftigt. Würde mich wundern wenn mailx das unterstützt.

Gruß
Georg
 
P6CNAT schrieb:
\015 ist der Oktalwert für das Zeichen "Carriage Return". Das kommt in der Linuxwelt normalerweise nicht vor, ist aber Standard in Windows Textdateien. Unix/Linux Kommandos haben mit dem Zeichen Probleme.
Lt. RFC822 wird bei SMTP das Zeilenende mit CRLF markiert, was dem üblichen Zeilenende unter Windows entspricht. Ein einzelnes CR hat auf keinem System etwas in der Mail verloren.
 
cool - scheint das Problem gewesen zu sein.
Ja ich hab das Script erst unter Windows bearbeitet aber dann unter Suse nochmal geändert.
Dabei sind aber CRLF wohl nicht geändert worden.

Damit kann ich jetzt als USER ne Mail verschicken.

ABER: wie kann ich das nun erreichen als ROOT??

Da kommt immer "account 1und1 does not exist".
Klar die .mailrc liegt ja auch nur im Home von user.
Wo muß das pendant hin damit es als root auch geht???

Merci im Voraus
Mobile_user
 
:up: :up: :up:

... es gibt noch viel zu lernen. :)
Dankeschön - klappt auch :)

Jetzt noch ne letzte Frage
mailx kann ja angeblich Anhänge verschicken. Aus den man-pages werd ich aber nicht schlau wie das gehen soll wenn ich z.B. ne Datei z.B Willi.dll anhängen möchte.
Die Bsp. die ich gefunden haben, ziehen immer den Inhalt der Dateien in den Mailtextbody hinein - das ist für mich aber kein Anhang.
??

Merci im Voraus
Mobile_user
 
... ich glaub damit ist auch das erledigt: es geht wohl nicht mit diesen Settings jetzt auch noch Anhänge zu verschicken.
:-( :-(

http://www.linux-community.de/Internal/Artikel/Print-Artikel/LinuxUser/2008/05/Die-Post-ist-da/(printView)/true

:-(
 
Hi,

Anhänge verschicken geht auf jeden Fall. Folgendes Beispiel habe ich mir mal irgendwo abgeguckt.

Code:
uuencode Anhang.dat Anhang.dat | mailx -s "Subject" empfänger@provider.de

Ich habe nicht verstanden weshalb der Anhang zweimal an uuencode übergeben werden muss, aber es funktioniert.
Kannst ja mal ein bischen experimentieren.

Gruß
Georg
 
Hi Georg,

laut dem von mir angegebenen Link kommt dann aber ein "Anhang" nur beim Empfänger so an, dass er mit UUDecode arbeiten muß.

Hast Du den Anhang komplett als "normalen" Anhang erhalten???

Mobile_user
 
Hi,

ja ein ganz normaler Anhang wie von einem üblichen Mailprogramm. Das kommt auch in Outlook so an und lässt sich mit einem Klick auf den Anhang öffnen. Allerdings habe ich keinen zusätzlichen Text in der Mail. In meinem Anwendungsfall besteht kein Bedarf.

PS: Dein Link ist wohl nicht vollständig. Ich kann den jedenfalls nicht öffnen.

Gruß
Georg
 
Hallo zusammen und vielen Dank für die Unterstützung.

Hier der korrigierte Link:

http://www.linux-community.de/Internal/Artikel/Print-Artikel/LinuxUser/2008/05/Die-Post-ist-da

@tooltime
zu man mailx finde ich folgendes:

The options are as follows:

-a Specify additional header fields on the command line such as "X-
Loop: foo@bar" etc. You have to use quotes if the string con-
tains spaces. This argument may be specified more than once, the
headers will then be concatenated.

Frage ist also was bewirkt -a wirklich ????

@Georg: hast Du auch mal ein Bild als Anhang verschickt? Evlt. geht das mit zweimal UUencode nur mit textanhängen???

M.U.
 
Hi,

ich hatte mal ein Bild verschickt als ich mit der Mailerei rumprobiert habe. Ich kann mich allerdings nicht mehr daran erinnern ob das mit mailx oder Python war. Normalerweise verschicke ich HTML- also Textdateien. In dem Beispiel von deinem Link (Seite 2) wird das Bild ja auch zweimal an uuencode übergeben. Wenn ich die Manpages von uuencode richtig verstehe braucht es das einmal für die Daten und zusätzlich für den Namen. Mit:

Code:
uuncode Datei neuername

müsste man demnach einer Datei einen anderen Namen im Anhang geben können.

Gruß
Georg
 
Hallo Georg,

lass mal gut sein - Vielen Dank an alle für die Unterstützung.

Als Anhang wäre zwar perfekt gewesen aber da würde wahrscheinlich eh nur text drinnen stehen. Das packe ich halt jetzt in den Mailtext.

Thema für mich hiermit erledigt.
Nochmal Dank

MfG
Mobile_user
 
Oben