Konsolen SMTP-Client

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Benutzeravatar
badera
Beiträge: 643
Registriert: 20.05.2004 20:01:50
Wohnort: Schweiz

Konsolen SMTP-Client

Beitrag von badera » 20.08.2005 10:41:59

Ich möchte von Skripts aus Mails versenden können, und zwar über eine bestehende EMail-Adresse (GMX). Daher brauche ich keinen MTA, sondern einfach einen SMTP-Client für die Konsole...

Auf der Suche bin ich auf "mail" gestossen. Aber ich zweifle, ob das das ist, was ich suche, denn nirgends finde ich die Möglichkeit zur Angabe von Benutzername und Passwort der SMTP-Authorisierung.

Hat mir jemand einen Tip? - Irgendwie scheint mir hier alles etwas vermischt zu sein zwischen "nur" Clients und Servern / MTAs... (natürlich liegt das an mir, weil ich den Überblick nicht hab)
- Adrian

Benutzeravatar
mauser
Beiträge: 1854
Registriert: 27.01.2005 22:34:48

Beitrag von mauser » 20.08.2005 12:04:58

hi,

hier ist ein kleines perl-skript, welches deine aufgabe erledigt.
( du musst nur das modul Net::SMTP_auth installieren, am einfachsten geht das wenn du
"cpan" in einer shell aufrufst und dann "install Net::SMTP_auth").
die option debug kannst du auch gerne auf 0 setzen, dann verschwindet der smtp-output.
[edit] ach ja, man ruft es mit "mail.pl empfänger nachricht" auf. die benutzerdaten für den smtp server kannst du im skript setzen
mfg
mauser

Code: Alles auswählen

      1 #!/usr/bin/perl -w
      2 #mail.pl
      3 use Net::SMTP_auth;
      4 
      5 die "Kein Empfänger angegeben" unless defined $ARGV[0];
      6 die "Kein Nachrichtentext angegeben" unless defined $ARGV[1];
      7 
      8 
      9 
     10 my $username="user\@mailserver.de";
     11 my $password="secret";
     12 my $recipient=$ARGV[0];
     13 my $server='mail.mailserver.de';
     14 
     15 $smtp = Net::SMTP_auth->new($server,Timeout=>10,Debug=>1);
     16 die "Couldn't connect to server" unless $smtp ;
     17 $smtp->auth('CRAM-MD5',$username,$password);
     18 $smtp->mail($username);
     19 $smtp->to($recipient);
     20 
     21 $smtp->data();
     22 $smtp->datasend("To: $recipient\n");
     23 $smtp->datasend("\n");
     24 $smtp->datasend("$ARGV[1]\n");
     25 $smtp->dataend();
     26 $smtp->quit;
               

Benutzeravatar
herrchen
Beiträge: 3257
Registriert: 15.08.2005 20:45:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Re: Konsolen SMTP-Client

Beitrag von herrchen » 20.08.2005 13:11:29

eine mail an GMX liefern, erfordert keine anmeldung am SMTP.
also sollte es "mail" tun ...
"aptitude install biabam", wenn es mit attachments sein soll.

herrchen

Benutzeravatar
tiax
Beiträge: 373
Registriert: 08.10.2003 17:53:38
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Beitrag von tiax » 20.08.2005 13:15:57

Nicht an GMX sondern über GMX.

Zu empfehlen wäre dann wohl das Paket msmtp

Benutzeravatar
badera
Beiträge: 643
Registriert: 20.05.2004 20:01:50
Wohnort: Schweiz

Beitrag von badera » 20.08.2005 14:39:58

Vielen Dank euch allen für die rasche Antworten!
Ich werde die einzelnen Vorschläge ausprobieren!
- Adrian

Benutzeravatar
badera
Beiträge: 643
Registriert: 20.05.2004 20:01:50
Wohnort: Schweiz

Beitrag von badera » 20.08.2005 22:25:51

Ich hab jetzt noch das packet resp. das Perlskript sendEmail gefunden:

Code: Alles auswählen

apt-get install sendemail
(nur in SID und Testing).

Genau das brauch ich!

Code: Alles auswählen

sendEmail -f absender@adresse -t empfänger@adresse -u Subject  -o message-file=msg.txt -s server:25 -xu smptusername -xp password -l logfile -a attachement
man kann alles loggen lassen, die Message vom STDIN nehmen oder von Dateien... tiptop!
- Adrian

toaster
Beiträge: 63
Registriert: 21.10.2004 21:54:03
Wohnort: Dresden

Beitrag von toaster » 02.09.2005 17:17:43

@badera:
wirklich nettes tool. hast du noch eine möglichkeit gefunden, die kopfzeilen im body feld zu entfernen?

Code: Alles auswählen

-1 Debian packageMIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----MIME delimiter for sendEmail-526667.113955231"

This is a multi-part message in MIME format. To properly display this message you need a MIME-Version 1.0 compliant Email program.

------MIME delimiter for sendEmail-526667.113955231
Content-Type: text/plain;
        charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

HIER STEHT DER TEXT AUS EINER PIPE


------MIME delimiter for sendEmail-526667.113955231--
Gruß Steffen

Benutzeravatar
badera
Beiträge: 643
Registriert: 20.05.2004 20:01:50
Wohnort: Schweiz

Beitrag von badera » 10.09.2005 18:39:47

Nein, weiss grad nicht wie (brauche das selbst nicht). Aber das kannst Du sicher im Skript so umschreiben, wie es Dir passt!
- Adrian

Antworten