Linux: E-Mail aus Script mit POP3 senden

Gast #667880
Guten Tag,

ich moechte aus einem Bashscript heraus gelegentlich eine E-Mail 
verschicken, dazu aber z.B. meinen GMX-Account benutzen.
Ich suche also einen Mailclient, mit dem sowas:
1
echo "Some message" | mail -s "meeting today" somebody@example.com
 geht, ohne monströse Sachen wie fetchmail, lokale Mailserver (bleibt in 
jedem Spamfilter haengen) etc., sondern halt ganz primitiv und mit einem 
(z.B. GMX-) E-Mail-Konto.
Gibt es so etwas?  Für ein paar Suchwörter (oder Tips, wie das besser zu 
lösen ist), wäre ich dankbar.

Grüße
Matthias
PS: BS = Ubuntu 6.06, aktuelles Debian.
Gast
> Linux: E-Mail aus Script mit POP3 senden

Du meinst SMTP, nicht POP3. Letzteres ist für dem Empfang von E-Mails.

> echo "Some message" | mail -s "meeting today" somebody@example.com

Geht es so nicht? Du brauchst dafür ein sendmail, das so konfiguriert
ist, dass es die Nachrichten an den SMTP-Server von GMX weiterleitet.

Oder du schreibst ein kleines Python-Skript nach folgendem Muster
1
import smtplib
2

3
fromaddr = "ich@hier.de"
4
toaddrs  = ["du@da.de", "er@dort.de"]
5
subject  = "Test"
6

7
msg="""
8
Hallo,
9
hier kommt eine E-Mail
10
Bis denne
11
"""
12

13
header = "From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n" % (
14
    fromaddr, ", ".join(toaddrs), subject)
15
server = smtplib.SMTP('smtp.gmx.net')
16
server.set_debuglevel(1)
17
server.login("mein_gmx_login", "mein_passwort")
18
server.sendmail(fromaddr, toaddrs, header+msg)
19
server.quit()

Dann brauchst du weder mail noch sendmail.
Gast
Oder Perl :)
1
#!/usr/bin/perl -w
2

3
use Net::SMTP;                          
4

5
$mail_server  = "taifun";       
6
$sender       = "bounty\@hier.com";    
7
$subject      = "woohoo";        
8
$receiver     = "bla\@bla.net";  
9

10
$smtp = Net::SMTP->new($mail_server);    
11
    
12
$smtp->mail($sender);                 
13
$smtp->to($receiver);                 
14
$smtp->data();                          
15
$smtp->datasend("Subject: $subject\n"); 
16
$smtp->datasend("To: $receiver\n");  
17
$smtp->datasend("\n");                  
18

19
# $smtp->datasend("blablabla");
20

21
$smtp->dataend(); 
22
$smtp->quit;
Gast
Hi!

In der Tat hat "yalu" schon alles wichtige geschrieben. Was du brauchst 
ist SMTP und das ist sehr einfach gestrickt. Es ist sogar möglich, 
mittels einer Telnet-Session eine Mail bei einem Mailserver nach Wahl 
einzuliefern. Ein solcher Dialog sieht dann in etwa so aus:

HELO <Hostname>
MAIL FROM: <Absenderadresse>
RCPT TO: <Empfängeradresse>
DATA
<Mailheader und Mailbody>

Das Mittel der Wahl dürfte aber tatsächlich eine Skriptsprache deiner 
Wahl sein. Nahezu jede davon hat in irgendeinem Package eine Funktion 
zum Generieren und Versenden von Mails. Ich denke, mittels eines 
Bash-Scriptes liesse sich das ev. mit ein paar Tricks und dem 
telnet-Beispiel sicher auch irgendwie hinbekommen.

Sparks
Gast
SMTP vs. POP3: Ja, natürlich, Danke. Peinlich....

sendmail: Hätte nicht gedacht, dass das geht. Aber soviel Python zu 
lernen, dass ich dein wunderbar funktionierendes Beispiel anpassen kann, 
ist wohl einfacher als sendmail zu konfigurieren.

Vielen, vielen Dank :)

Grüße
Matthias
Gast
@Sparks: Danke auch dir (hatte dein Posting noch nicht gesehen), bash 
muss nicht sein, python/perl etc. sind schon OK, hatte nur gedacht, dass 
es etwas fertiges gibt.

Grüße
Matthias
Hallo linuxfreaks,

ich wärme den thread nochmal auf:

echo "Coming home for dinner!" | mail sylvia@home.com

von der Kommandozeile klappt bei meinem Debian linux nicht. kmail läuft 
mit meiner Konfiguration.

Ich hatte gehofft, dass der 'mail tranfer agent' mit funktionierendem 
kmail so konfiguriert ist, dass 'mail' auch geht, tut aber nicht. Was 
kann/muss ich denn noch wo konfigurieren, an die 'sendmail'-Hölle will 
ich ungern ran.

Danke
Cheers
Detlef
Detlef _a schrieb:
> Hallo linuxfreaks,
>
> ich wärme den thread nochmal auf:
>
> echo "Coming home for dinner!" | mail sylvia@home.com
>
> von der Kommandozeile klappt bei meinem Debian linux nicht. kmail läuft
> mit meiner Konfiguration.
>
> Ich hatte gehofft, dass der 'mail tranfer agent' mit funktionierendem
> kmail so konfiguriert ist, dass 'mail' auch geht, tut aber nicht. Was
> kann/muss ich denn noch wo konfigurieren, an die 'sendmail'-Hölle will
> ich ungern ran.
>
> Danke
> Cheers
> Detlef

Du hast einen lokalen MTA? Oder versendet kmail die Mails ueber den
MTA deines Providers?
mail wird wohl deinen lokalen MTA benutzen und falls der überhaupt
läuft, wird der von home.com wohl abgelehnt.
Naeheres sollte sich in den Logfiles finden lassen.

Michael
Gast
> echo "Coming home for dinner!" | mail sylvia@home.com

Das setzt vorraus das dein lokaler MTA in der lage ist eine eMail
an sylvia@home.com zu schicken. Da das NICHT die Standard einstellung
vom exim4 bei Debian ist, kann das nicht klappen.

Was sagt denn exim -bt als root gestartet, wenn du
sylvia@home.com eingibst?

>Ich hatte gehofft, dass der 'mail tranfer agent' mit funktionierendem
>kmail so konfiguriert ist, dass 'mail' auch geht, tut aber nicht.

Mail verwendet den lokalen MTA. Wenn du nur mal einfach so eine eMail
an eine externen MTA absetzen willst kannst du die Scripte oben benutzen
oder gleich sendemail installieren und dann sendEmail + parameter
anstatt mail verwenden.

> Was kann/muss ich denn noch wo konfigurieren, an die 'sendmail'-Hölle
> will ich ungern ran.

Vergiss Sendmail. Der ist zu viel Komplex dafür.
Wenn du den weg mit exim4 gehen willst:
Installiere exim4-daemon-heavy und ruf dann
dpkg-reconfigure exim4-config
auf. In man exim4-config_files solltest du auch mal reinschauen.
>>Du hast einen lokalen MTA? Oder versendet kmail die Mails ueber den
>>MTA deines Providers?

Mein provider ist GMX . Ich dachte, dass ich auch nen MTA benötige wenn 
ich als Client über GMX ne mail verschicken will, oder ist das nicht der 
Fall?

>>Es kann sein, dass ein Provider SMTP nur zulässt, wenn kurz zuvor per
>>POP3 der Benutzer authentifiziert wurde. Dann kommt man mit
>>mail/sendmail nicht weit.

Ja, ein Authentifizierung benötige ich zum Einloggen bei GMX.

>>kannst du die Scripte oben benutzen

Genauso hab ichs jetzt gemacht. Das Python script von yalu konnte 
Authentifizierung und damit gings dann. Verstanden habe ich zwar nichts 
von dem MTA-Zeug aber gehen tuts jetzt, naja.

Danke an alle.
Cheers
Detlef

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.