Archiv verlassen und diese Seite im Standarddesign anzeigen : Mail aus Script heraus versenden
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, 16:07
Hi
Für Fragen zur Programmierung schau mal bei unserem Schwesterforum vorbei: www.mrunix.de
Cu
André
echo "Hallo, na wie gehts?" | mail -S "Betreff vergessen :)" email@adresse.de
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
Hm.. ein Server der Mails verschicken kann sollte im Normalfall ein konfiguriertes sendmail, postfix whatever haben. Womit sich dann auch die Adresse festlegt.
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--
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:
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
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
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) ;
}
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.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.