PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mail aus Script heraus versenden



HardHat
12.05.03, 16:58
Hi,

ich habe den üblichen T-Online Zugang und habe dementsprechend den zugehörigen Mail Account. Ich möchte aus einem Script heraus automatisch eine E-Mail versenden.

Wie geht das?

HardHat

Berufspenner
12.05.03, 17:07
Hi

Für Fragen zur Programmierung schau mal bei unserem Schwesterforum vorbei: www.mrunix.de

Cu
André

marcdevil
12.05.03, 17:37
echo "Hallo, na wie gehts?" | mail -S "Betreff vergessen :)" email@adresse.de

HardHat
13.05.03, 08:46
Hört sich ja ganz einfach an...

aber: woher weiss der mail Befehl welchen Mail Server er nehmen soll? Muss ich das nicht irgendwo konfigurieren?

HardHat

Thyraz
13.05.03, 08:50
Hm.. ein Server der Mails verschicken kann sollte im Normalfall ein konfiguriertes sendmail, postfix whatever haben. Womit sich dann auch die Adresse festlegt.

echo
13.05.03, 09:21
hi,
mal was ganz ausgefallenes:
nimm doch netcat
http://freshmeat.net/projects/netcat/?topic_id=150
schreibst ein kleines script und kannst dann ne textdatei an deinen mail-server senden ohne ein mail-client/mail-server zu besitzen.
nützlich bei sicherheitsfragen ;-)

--snip--
echo HELO localhost > /tmp/send.txt
echo MAIL FROM: ich@woanders >> /tmp/send.txt
echo RCPT TO: du@irgendwo >> /tmp/send.txt
echo DATA >> /tmp/send.txt
echo >> /tmp/send.txt

cat /tmp/send.txt |netcat mail.server.de 25
--snap--

HardHat
14.05.03, 16:50
Ich muss mich aber bei dem server auch irgendwie authentifizieren. weder bei der Variante mit dem " ... | mail .." noch bei der netcat Variante kann ich irgendwo meinen Mail-account-namen und mein Passwort angeben.

Wie geht das?

Gibt es nicht irgendeinen simplen kommandozeilenbasierten mail client wo ich als parameter einfach reinstecke:
- adresse des mail servers
- port des mail servers
- username auf dem mail server
- passwort für username
- absender
- empfänger
- betreff
- nachricht

Nun? :confused:

echo
15.05.03, 10:59
hiho,
hab doch schon das script für dich fertig geschrieben????

zum verständniss:
wenn du dich auf einen mail-server auf port 25 mit telnet verbindest, ist die erste eingabe normalerweise ein
helo
(das steht auch so in dem script)
danach kommen die mailgeschichten, von wem, zu wem usw.

normaler weise authentifiziert man sich nicht auf einem mail-server/SMTP (ganz im gegensatz zu POP3 oder IMAP4).
also zuerst mal ausprobieren, sollte der SMTP-server nicht so konfiguriert von deinem provider zur verfügung stehen, musste rausfinden wie du dich authentifizieren musst (dies sollte aber nur bei öffentlichen mailservern, wie gmx nur der fall sein).

alternativ kannste dir doch einen ganzen mailclient installieren (pine, mail) installieren. der vorteil von netcat ist, das du nichts instalieren brauchst, was unter umständen zu problen /sicherheitslöchern führen könnte (ist also für zb. firewalls ganz nützlich, wo nur die fw laufen sollte).

cu
echo

mbo
15.05.03, 11:38
ah ja ...

nur dumm, daß die meisten per default mittlerweile smtp-auth und pop-b-smtp einsetzen, besonders provider.
und wer lesen kann ist klar im vorteil: er merkte doch an, daß er den t-online-zugang nutzt, und die verlangen nun mal smtp-auth.

sofern also keine mta vorhanden ist, ist die frage nach smtp-auth in einem script schon wieder ne richtig gute frage ...

cu/2 iae

mbo
15.05.03, 11:43
ein spontaner griff in die google-kiste brachte das hervor:

http://www.perlunity.de/perl/forum/thread_013978.shtml



###
#SMTP-Auth

my $user=encode_base64($CONFIG{'SMTP_USER'}) ;
my $pw=encode_base64($CONFIG{'SMTP_PW'}) ;
chomp($user);
chomp($pw);


###
#SMTP mit Auth

$smtp->command("AUTH LOGIN");
$smtp->command($user);
$smtp->command($pw);
$smtp->mail($mailfrom);
$smtp->recipient($mailto);
$smtp->data();
$smtp->datasend("To: $mailto\n");
$smtp->datasend("From: $mailfrom\n");
$smtp->datasend("Subject: $mailsub\n");
$smtp->datasend(\@mailtext);
$smtp->dataend();
$smtp->quit();

################################################## ##########################
# Verschlüsselung
################################################## ##########################

sub encode_base64 {

my $res = "";
my $eol = $_[1];

$eol = "\n" unless defined $eol;
pos($_[0]) = 0;

while ($_[0] =~ /(.{1,45})/gs) {

$res .= substr(pack('u', $1), 1);
chop($res);
}

$res =~ tr|` -_|AA-Za-z0-9+/|;
my $padding = (3 - length($_[0]) % 3) % 3;
$res =~ s/.{$padding}$/'=' x $padding/e if $padding;

if (length $eol) {

$res =~ s/(.{1,76})/$1$eol/g;
}

###
#Rückgabe

return($res) ;

}

echo
15.05.03, 13:05
Original geschrieben von mbo
ah ja ...


und wer lesen kann ist klar im vorteil: er merkte doch an, daß er den t-online-zugang nutzt, und die verlangen nun mal smtp-auth.

cu/2 iae

hey sorry, war nie und werde nie bei der telekotz online gehen.
(ich dachte seine frage wäre hypotetisch)
und bei meinen proviedern musste ich mich für mailversand noch nie authentifizieren.
die mailserver sind eben nur vom internen netz erreichbar ;-)

wie dem auch sei. wo ein problem da irgendwo ne lösung und die haste auch gefunden.