mikrocontroller.net

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


Autor: EZ81__ (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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:
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.

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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
import smtplib

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

msg="""
Hallo,
hier kommt eine E-Mail
Bis denne
"""

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

Dann brauchst du weder mail noch sendmail.

Autor: Mighty (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder Perl :)
#!/usr/bin/perl -w

use Net::SMTP;                          

$mail_server  = "taifun";       
$sender       = "bounty\@hier.com";    
$subject      = "woohoo";        
$receiver     = "bla\@bla.net";  

$smtp = Net::SMTP->new($mail_server);    
    
$smtp->mail($sender);                 
$smtp->to($receiver);                 
$smtp->data();                          
$smtp->datasend("Subject: $subject\n"); 
$smtp->datasend("To: $receiver\n");  
$smtp->datasend("\n");                  

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

$smtp->dataend(); 
$smtp->quit;

Autor: Sparks (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: EZ81__ (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: EZ81__ (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Detlef _a (detlef_a)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Micha S. (ernie)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Detlef _a (detlef_a)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.