Forum: PC Hard- und Software Linux: E-Mail aus Script mit POP3 senden


von EZ81__ (Gast)


Lesenswert?

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.

von yalu (Gast)


Lesenswert?

> 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.

von Mighty (Gast)


Lesenswert?

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;

von Sparks (Gast)


Lesenswert?

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

von EZ81__ (Gast)


Lesenswert?

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

von EZ81__ (Gast)


Lesenswert?

@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

von Detlef _. (detlef_a)


Lesenswert?

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

von Micha S. (ernie)


Lesenswert?

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

von (prx) A. K. (prx)


Lesenswert?

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.

von Tim (Gast)


Lesenswert?

> 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.

von Detlef _. (detlef_a)


Lesenswert?

>>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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.