hilker: Net::SMTP und smtp.web.de

Hallo erstmal!
Ich versuche irgendwie den Server smtp.web.de mit Perl via Net::SMTP anzusprechen. Leider gelingt mir das nicht so recht.
Folgende Fehler treten auf:

  1. The server does not support any secure password authentication providers
    Wenn ich es mit Pop before SMTP versuche.

Oder
2) Receive error: "550 <xxxxx> xxxxx bitte SMTP-AUTHentifizierung benutzen/use SMTP-AUTH please"
Wenn ich Username & Passwort mitgebe.

Wie überrede ich Net::SMTP dazu Auth zu können?
Ich kenne das Modul HTTP::Auth, http ist aber nicht gefragt hier!

Hat jemand 'ne Idee? Ich hab echt keinen Plan wo ich ansetzen soll...

Gruß, der Hilker

  1. hi,

    Wie überrede ich Net::SMTP dazu Auth zu können?

    ganz einfach:
    use Net::SMTP_auth

    Beispiel hier:
    http://rolfrost.de/mail.html

    --roro

    1. hi,

      Wie überrede ich Net::SMTP dazu Auth zu können?

      ganz einfach:
      use Net::SMTP_auth

      Beispiel hier:
      http://rolfrost.de/mail.html

      --roro

      Ja vielen Dank! Ist ja abgesehen von der smtp->auth obj. genau wie NET::SMTP...

      leider klappt's nicht :-(

      Mein Test-script wie folgt:

      #!/usr/bin/perl

      print "Content-Type: text/html\n\n";
      use Net::SMTP_auth;

      my $smtp = Net::SMTP_auth->new("smtp.web.de") or print "Hell!";
      $smtp->auth('LOGIN', '%myusername', '%mypasswort') or print "not auth";

      my $to = "";  (siehe *)
      my $from = "";

      $smtp->mail();
       $smtp->to($to);
       $smtp->data();
       $smtp->datasend("To: $to\n");
       $smtp->datasend("From: $from\n");
       $smtp->datasend("Subject: Tach gesacht\n\n"); # end header
       $smtp->datasend("Nur ein kleener Test!\n");
       $smtp->dataend();

      $smtp->quit;

      print "sent!";

      * mailadressen wie in der perldoc Net::SMTP "username"@domain

      verschickt wird aber nichts! Und nu?

      1. hi,

        Mein Test-script wie folgt:

        #!/usr/bin/perl

        print "Content-Type: text/html\n\n";
        use Net::SMTP_auth;

        my $smtp = Net::SMTP_auth->new("smtp.web.de") or print "Hell!";

        frag mal die auth_types ab:

        Testen der auth_types

        printf("%s\n", join("\n", $smtp->auth_types));

        LOGIN

        PLAIN

        XYMCOOKIE

        ...kann sein dass bei Dir was anderes steht.

        $smtp->auth('LOGIN', '%myusername', '%mypasswort') ....

        das dann        ^hier  einsetzen

        --roro

        1. frag mal die auth_types ab:

          Testen der auth_types

          printf("%s\n", join("\n", $smtp->auth_types));

          LOGIN

          PLAIN

          XYMCOOKIE

          ...kann sein dass bei Dir was anderes steht.

          Hab ich bereits! PLAIN und LOGIN...
          PLAIN geht natürlich nicht, und LOGIN ist OK, also keine Fehlermeldung, sofern ich die korrekten Benutzerdaten eingebe...

          :-/

          1. frag mal die auth_types ab:

            Testen der auth_types

            printf("%s\n", join("\n", $smtp->auth_types));

            LOGIN

            PLAIN

            XYMCOOKIE

            ...kann sein dass bei Dir was anderes steht.

            Hab ich bereits! PLAIN und LOGIN...
            PLAIN geht natürlich nicht, und LOGIN ist OK, also keine Fehlermeldung, sofern ich die korrekten Benutzerdaten eingebe...

            ähmm,

            $smtp->auth('LOGIN', '%myusername', '%mypasswort')...
            vielleicht so

            $smtp->auth('LOGIN', $myusername, $mypasswort);

            --roro

            1. frag mal die auth_types ab:

              Testen der auth_types

              printf("%s\n", join("\n", $smtp->auth_types));

              LOGIN

              PLAIN

              XYMCOOKIE

              ...kann sein dass bei Dir was anderes steht.

              Hab ich bereits! PLAIN und LOGIN...
              PLAIN geht natürlich nicht, und LOGIN ist OK, also keine Fehlermeldung, sofern ich die korrekten Benutzerdaten eingebe...

              ähmm,

              $smtp->auth('LOGIN', '%myusername', '%mypasswort')...
              vielleicht so

              $smtp->auth('LOGIN', $myusername, $mypasswort);

              --roro

              mhm.. glaube ich nicht, denn warum gibt's nen fehler wenn die Daten nicht korrekt sind... also username &|| passwort

      2. Hell-O!

        leider klappt's nicht :-(

        Was sagt das ErrorLog?

        #!/usr/bin/perl

        use strict;  
        use diagnostics;
        

        my $smtp = Net::SMTP_auth->new("smtp.web.de") or print "Hell!";

        Schalte mal den Debug-Modus ein und gib den Accountnamen explizit an:

        my $smtp = Net::SMTP_auth->new('smtp.web.de', Hello => 'mailserver.tld', Debug => 1) or print "Hell!";

        Ansonsten gibt's zu Net::SMTP (das Basismodul zu Net::SMTP_auth) eine recht gute Anleitung.

        Siechfred

        --
        Ich bin strenggenommen auch nur interessierter Laie. (molily)
        Siechfreds Tagebuch || Falle Aufteilungsbescheid || RT 221 Erfurt-Altstadt i.V.
        1. Hell-O!

          leider klappt's nicht :-(

          Was sagt das ErrorLog?

          #!/usr/bin/perl

          use strict;

          use diagnostics;

          
          >   
          > > my $smtp = Net::SMTP\_auth->new("smtp.web.de") or print "Hell!";  
          >   
          > Schalte mal den Debug-Modus ein und gib den Accountnamen explizit an:  
          >   
          > `my $smtp = Net::SMTP_auth->new('smtp.web.de', Hello => 'mailserver.tld', Debug => 1) or print "Hell!";`{:.language-Perl}  
          >   
          > Ansonsten gibt's zu Net::SMTP (das Basismodul zu Net::SMTP\_auth) eine [recht gute Anleitung](http://thomas-fahle.de/pub/perl/Mail_and_News/SMTP.html).  
          >   
          > Siechfred  
            
          Hi Siechfred!  
            
          Vielen Dank für die Hilfe! Dein Beitrag hat mir hier zum Erfolg verholfen und mich gleich vor das nächste Problem gestellt.  
          Oder - nennen wir es mal "Herausforderung"... ;)  
            
          Das Modul Net::SMTP\_auth ist bei keinem meiner Provider installiert, d.h. ich hab es via 'use lib (pfad) und upload des Moduls eingebunden.  
          Zunächst wurde 'Authen::SASL' nicht gefunden - einfach auch noch hochgeladen und dann... :-(  
          \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_  
          Fehlermeldung wie folgt:  
            
          Software error:  
            
          Cannot find a SASL Connection library at Local/Net/SMTP\_auth.pm line 90  
            
          For help, please send mail to the webmaster (test@example.org), giving this error message and the time and date of the error.  
          \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_  
            
          Zeile 90 +- 5 aus der smtp\_auth.pm:  
            
          85         pass     => $pass,  
          86        },  
          87         );  
          88  return unless $sasl;  
          89  my $host = ${\*$me}{'net\_smtp\_host'};  
          90  my $conn = $sasl->client\_new("smtp", $host);#, "noplaintext noanonymous");  
          91  
          92  $me->\_AUTH($auth) or return;  
          93  
          94  if ( $me->code() == 334 ) {  
          95  
          96    if (my $initial = $conn->client\_start)  
            
            
          nu bin ich mit meinem Latein am Ende! 
          
          1. nu bin ich mit meinem Latein am Ende!

            Da wirst du deinen Hoster überzeugen müssen, dass er das Modul installiert.

            Struppi.

            --
            Javascript ist toll (Perl auch!)
            1. nu bin ich mit meinem Latein am Ende!

              Da wirst du deinen Hoster überzeugen müssen, dass er das Modul installiert.

              Struppi.

              jo, oder feststellen, dass es bei meinem 2.Anbieter auch so klappt! :)

              Vielen Dank!

              1. nu bin ich mit meinem Latein am Ende!

                Da wirst du deinen Hoster überzeugen müssen, dass er das Modul installiert.

                Struppi.

                jo, oder feststellen, dass es bei meinem 2.Anbieter auch so klappt! :)

                perldiver ist ein nützliches Programm, dass dir einen Teil der Serverkonfiguration anzeigt. Da kannst du vorher schauen ob ein Modul vielleicht schon installiert ist.

                Struppi.

                --
                Javascript ist toll (Perl auch!)
          2. Das Modul Net::SMTP_auth ist bei keinem meiner Provider installiert, d.h. ich hab es via 'use lib (pfad) und upload des Moduls eingebunden.

            Das wird so nur bei den wenigsten Modulen funktionieren, namentlich nur bei denen, die in reinem Perl geschrieben sind und nur Standardmodule erfordern.

            nu bin ich mit meinem Latein am Ende!

            Die einzige Lösung hat dir Struppi schon genannt.

            Siechfred

            --
            Ich bin strenggenommen auch nur interessierter Laie. (molily)
            Siechfreds Tagebuch || Falle Aufteilungsbescheid || RT 221 Erfurt-Altstadt i.V.