sebastian: Net::SMTP und anmeldung bei Browsern

Folgenden Source hab ich:

#!/usr/bin/perl
use Net::SMTP;
use strict;
my($mailhost,$absender,$empfaenger);

$mailhost='smtp.web.de';
$absender='irgendwer@web.de';
$empfaenger='weranders@web.de';

Objekt erzeugen

my $smtp=Net::SMTP->new($mailhost);

Absender und Emfaegner

$smtp->mail($absender);
$smtp->to($empfaenger);

Beginne mit dem Senden des Kommandos DATA an den Server

$smtp->data();

Sende nun die Daten an den Server

$smtp->datasend(<<END);
To: $empfaenger
Subject: Das ist eine Testmail

Der text im body der mail

dein $absender

END

Stoppe das senden der Daten an den Server

$smtp->dataend();

Baue nun die Verbindung ab.

$smtp->quit();

print "Content-type: text/html\n\n";
print "<html><body>Gesendet</body></html>";

Frage nun, wieso schickt er keine Mail, ich vermute ja, das es daran liegt, das man sich beim Postausgangsserver anmelden muss, jedoch wie tue ich das ????

  1. Topic Name ist falsch !!! Net::SMTP und Anmeldung bei z.B. web.de muss es heißen und hab gerade gesehen, das es das Topic schon gab, nur das da keine Antwort kam

  2. hi,

    Frage nun, wieso schickt er keine Mail, ich vermute ja, das es daran liegt, das man sich beim Postausgangsserver anmelden muss, jedoch wie tue ich das ????

    Hmm.

    Du kannst ja mal prüfen ob der Postausgangsserver überhaupt tut!

    Geht ganz einfach:

    use IO::Socket;

    Testen des Postausgangsservers auf Port 25

    my $client_sock = new IO::Socket::INET (
     PeerAddr => 'localhost',
     PeerPort => 25,
     Proto    => 'tcp') or return 0;

    also, statt 'localhost' den Namen bitte und anstelle return() eine handfeste Fehlerausgabe ;-)

    --Rolf

    1. Hi Rolf, hab folgenden Skript benutzt:

      #!/usr/bin/perl

      use IO::Socket;

      print "Content-type: text/html\n\n";

      print "<html><body>";

      Testen des Postausgangsservers auf Port 25

      my $client_sock = new IO::Socket::INET (
       PeerAddr => 'smtp.web.de',
       PeerPort => 25,
       Proto    => 'tcp') or print "error";

      print "</body></html>";

      und hab folgende Seitensource bekommen:

      <html><body></body></html>

      Folglich funktioniert das, das Problem scheint mir ja darin zu bestehen, das ich mich bei web.de mit ACC und PW anmelden muss, und anscheinend funktioniert das nicht, und deswegen wird keine E-mail geschickt

      1. hi,

        Folglich funktioniert das, das Problem scheint mir ja darin zu bestehen, das ich mich bei web.de mit ACC und PW anmelden muss, und anscheinend funktioniert das nicht, und deswegen wird keine E-mail geschickt

        Sieht ganz danach aus.

        Guck
        http://cpan.uwinnipeg.ca/module/Net::SMTP_auth

        Viele Grüße, Rolf

        --

        aus dem protocol:
        # telnet smtp.web.de 25
        helo xxl
        250 smtp07.web.de Hello xxl [80.139.19.215]
        mail from:rosti@vr-web.de
        501 Sorry, keine Authentifizierung.  POP3 muss vorher benutzt werden. Fehler: 'u
        nbekannter Benutzer' / Sorry, authentification failed.  POP3 must be used prior
        to sending mail.  Error: 'unknown user'
        quit
        221 smtp07.web.de closing connection
      2. Tag sebastian.

        Folglich funktioniert das, das Problem scheint mir ja darin zu bestehen, das ich mich bei web.de mit ACC und PW anmelden muss, und anscheinend funktioniert das nicht, und deswegen wird keine E-mail geschickt

        Du kannst auch den Umweg über Net::POP3 gehen, indem du dich erst auf dem Maileingangsserver anmeldest und dann versuchst, über Net::SMTP die Mail zu versenden. Näheres zum Verfahren findest du auf der Seite von Thomas Fahle zu SMTP over POP.

        [dsf 3.6]
        Siechfred

        --
        »Sie kochten heimlich mit Wasser und tranken öffentlich Wein.«
        1. Fettes Danke, es hat geklappt ;-)

          wenn du den besitzer der Page kennst, kannst ihm ja mal sagen, das auf der von dir verlinkten Seite im Beispiel nen fehler ist:

          accepted = 1;  # raus aus der Schleife

          da fehlt das $-Zeichen vor accepted.

        2. Hi Siechfred,
          das ganze hat super geklappt.
          Aber, das PAssword muss ja am Klartext in Skript stehen, kann ich das irgendwie anderes machen. Zumbeispiel auslagern und die Datei schützen ???

          1. Tag sebastian.

            Aber, das PAssword muss ja am Klartext in Skript stehen, kann ich das irgendwie anderes machen. Zumbeispiel auslagern und die Datei schützen ???

            Nein. Aber warum auch? Niemand außer dir als Scriptautor bekommt das Passwort je zu Gesicht.

            [dsf 3.6]
            Siechfred

            --
            »Sie kochten heimlich mit Wasser und tranken öffentlich Wein.«
            1. ok. thx an dich